diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 62c8d2c6..db586c0c 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -71,7 +71,6 @@ ast:lambda-formals-type ast:lambda-formals->list list->lambda-formals - pair->list list->pair lambda->exp if->condition @@ -395,14 +394,6 @@ (car args))) (else (error `(Unexpected type ,type))))) -;; Create a proper copy of an improper list -;; EG: (1 2 . 3) ==> (1 2 3) -(define (pair->list p) - (let loop ((lst p)) - (if (not (pair? lst)) - (cons lst '()) - (cons (car lst) (loop (cdr lst)))))) - ;; Create an improper copy of a proper list (define (list->pair l) (let loop ((lst l)) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 32bea65a..112d7c0e 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -16,6 +16,7 @@ if? begin? lambda? + pair->list ;; Environments env:enclosing-environment env:first-frame @@ -66,6 +67,14 @@ (define (lambda? exp) (tagged-list? 'lambda exp)) +;; Create a proper copy of an improper list +;; EG: (1 2 . 3) ==> (1 2 3) +(define (pair->list p) + (let loop ((lst p)) + (if (not (pair? lst)) + (cons lst '()) + (cons (car lst) (loop (cdr lst)))))) + ; char->natural : char -> natural (define (char->natural c) (let ((i (char->integer c)))