mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 08:17:35 +02:00
Relocated functions
This commit is contained in:
parent
957672fe70
commit
eac413a2f5
2 changed files with 22 additions and 22 deletions
|
@ -67,8 +67,6 @@
|
|||
app->args
|
||||
precompute-prim-app?
|
||||
begin->exps
|
||||
define-lambda?
|
||||
define->lambda
|
||||
closure?
|
||||
closure->lam
|
||||
closure->env
|
||||
|
@ -411,26 +409,6 @@
|
|||
(define (begin->exps exp)
|
||||
(cdr exp))
|
||||
|
||||
(define (define-lambda? exp)
|
||||
(let ((var (cadr exp)))
|
||||
(or
|
||||
;; Standard function
|
||||
(and (list? var)
|
||||
(> (length var) 0)
|
||||
(symbol? (car var)))
|
||||
;; Varargs function
|
||||
(and (pair? var)
|
||||
(symbol? (car var))))))
|
||||
|
||||
(define (define->lambda exp)
|
||||
(cond
|
||||
((define-lambda? exp)
|
||||
(let ((var (caadr exp))
|
||||
(args (cdadr exp))
|
||||
(body (cddr exp)))
|
||||
`(define ,var (lambda ,args ,@body))))
|
||||
(else exp)))
|
||||
|
||||
; closure? : exp -> boolean
|
||||
(define (closure? exp)
|
||||
(tagged-list? 'closure exp))
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
begin?
|
||||
lambda?
|
||||
pair->list
|
||||
define-lambda?
|
||||
define->lambda
|
||||
formals->list
|
||||
lambda-formals->list
|
||||
lambda-varargs?
|
||||
|
@ -250,6 +252,26 @@
|
|||
(cons lst '())
|
||||
(cons (car lst) (loop (cdr lst))))))
|
||||
|
||||
(define (define-lambda? exp)
|
||||
(let ((var (cadr exp)))
|
||||
(or
|
||||
;; Standard function
|
||||
(and (list? var)
|
||||
(> (length var) 0)
|
||||
(symbol? (car var)))
|
||||
;; Varargs function
|
||||
(and (pair? var)
|
||||
(symbol? (car var))))))
|
||||
|
||||
(define (define->lambda exp)
|
||||
(cond
|
||||
((define-lambda? exp)
|
||||
(let ((var (caadr exp))
|
||||
(args (cdadr exp))
|
||||
(body (cddr exp)))
|
||||
`(define ,var (lambda ,args ,@body))))
|
||||
(else exp)))
|
||||
|
||||
; lambda->formals : lambda-exp -> list[symbol]
|
||||
(define (lambda->formals exp)
|
||||
(cadr exp))
|
||||
|
|
Loading…
Add table
Reference in a new issue