diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index d5a58096..da67226d 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -48,6 +48,7 @@ delete delete-duplicates flatten + length/obj list-index2 list-insert-at! list-prefix? @@ -127,6 +128,24 @@ ((list? args) args) (else (pair->list args)))) +;; Take arguments for a lambda and pack them depending upon lambda type +;(define (pack-lambda-arguments formals args) +; (cond +; ((symbol? formals) +; (list args)) +; ((list? formals) +; args) +; (else +(define (length/obj l) + (let loop ((lis l) + (len 0)) + (cond + ((pair? lis) + (loop (cdr lis) (+ len 1))) + (else + len)))) + + ; char->natural : char -> natural (define (char->natural c) (let ((i (char->integer c)))