mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
define-values stub
This commit is contained in:
parent
861bc8a7ca
commit
d819885048
1 changed files with 46 additions and 0 deletions
|
@ -66,6 +66,44 @@
|
|||
(lambda args (let ((len (length args))) (%case args len 0 () . clauses))))))
|
||||
;(lambda args (let ((len (length* args))) (%case args len 0 () . clauses))))))
|
||||
|
||||
;(define-syntax define-values
|
||||
; (syntax-rules ()
|
||||
; ((define-values () expr)
|
||||
; (define dummy
|
||||
; (call-with-values (lambda () expr)
|
||||
; (lambda args #f))))
|
||||
; ((define-values (var) expr)
|
||||
; (define var expr))
|
||||
; ((define-values (var0 var1 ... varn) expr)
|
||||
; (begin
|
||||
; (define var0
|
||||
; (call-with-values (lambda () expr) list))
|
||||
; (define var1
|
||||
; (let ((v (cadr var0)))
|
||||
; (set-cdr! var0 (cddr var0))
|
||||
; v))
|
||||
; ...
|
||||
; (define varn
|
||||
; (let ((v (cadr var0)))
|
||||
; (set! var0 (car var0))
|
||||
; v))))
|
||||
; ((define-values (var0 var1 ... . var-dot) expr)
|
||||
; (begin
|
||||
; (define var0
|
||||
; (call-with-values (lambda () expr) list))
|
||||
; (define var1
|
||||
; (let ((v (cadr var0)))
|
||||
; (set-cdr! var0 (cddr var0))
|
||||
; v))
|
||||
; ...
|
||||
; (define var-dot
|
||||
; (let ((v (cdr var0)))
|
||||
; (set! var0 (car var0))
|
||||
; v))))
|
||||
; ((define-values var expr)
|
||||
; (define var
|
||||
; (call-with-values (lambda () expr) list)))))
|
||||
|
||||
(write
|
||||
(letrec* ((x 1)) x))
|
||||
|
||||
|
@ -92,3 +130,11 @@
|
|||
(write
|
||||
(range 3 5)) ; => (3 4)
|
||||
|
||||
;(define-values (x y) (integer-sqrt 17))
|
||||
;(write
|
||||
; (list x y)) ; => (4 1)
|
||||
;
|
||||
;(write
|
||||
; (let ()
|
||||
; (define-values (x y) (values 1 2))
|
||||
; (+ x y))) ;=> 3
|
||||
|
|
Loading…
Add table
Reference in a new issue