X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=src%2Futils.scm;h=ed09712d9a990531d9e9daecdc81e1131596aed1;hp=d63a51148f2a8f590ae1e2a545abc8dc49d5dd16;hb=bdc03bcc2da4d01745fb542d7a7d642b888b691e;hpb=f02971f747ab2e643e2bc6bd962a068329b0f402 diff --git a/src/utils.scm b/src/utils.scm index d63a511..ed09712 100644 --- a/src/utils.scm +++ b/src/utils.scm @@ -20,6 +20,7 @@ arguments-calling arguments-apply bound? + names-arguments make-producer)) @@ -145,6 +146,11 @@ (keyword-arguments-apply args values) (rest-arguments-apply args values)))) +(define (names-arguments args) + (map (lambda (x) (if (list? x) (car x) x)) + (filter (lambda (x) (not (keyword? x))) + (pair-to-list args)))) + ;;; Continuations and coroutines @@ -161,3 +167,11 @@ (if resume (resume real-send) (body send)))) + + +;;; Miscellaneous + +(define (pair-to-list pair) + (cond ((null? pair) '()) + ((not (pair? pair)) (list pair)) + (else (cons (car pair) (pair-to-list (cdr pair))))))