mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-08 05:27:33 +02:00
Temporary test file
This commit is contained in:
parent
1241f71e80
commit
ef3ea81542
1 changed files with 31 additions and 0 deletions
31
test-let-values.scm
Normal file
31
test-let-values.scm
Normal file
|
@ -0,0 +1,31 @@
|
|||
(import (scheme base) (scheme write))
|
||||
|
||||
;(define-syntax let*-values
|
||||
; (syntax-rules ()
|
||||
; ((let*-values () . body)
|
||||
; (begin . body))
|
||||
; ((let*-values (((a) expr) . rest) . body)
|
||||
; (let ((a expr)) (let*-values rest . body)))
|
||||
; ((let*-values ((params expr) . rest) . body)
|
||||
; (call-with-values (lambda () expr)
|
||||
; (lambda params (let*-values rest . body))))))
|
||||
|
||||
(define-syntax my-let-values
|
||||
(syntax-rules ()
|
||||
((my-let-values ("step") (binds ...) bind expr maps () () . body)
|
||||
(let*-values (binds ... (bind expr)) (let maps . body)))
|
||||
((my-let-values ("step") (binds ...) bind old-expr maps () ((params expr) . rest) . body)
|
||||
(my-let-values ("step") (binds ... (bind old-expr)) () expr maps params rest . body))
|
||||
((my-let-values ("step") binds (bind ...) expr (maps ...) (x . y) rest . body)
|
||||
(my-let-values ("step") binds (bind ... tmp) expr (maps ... (x tmp)) y rest . body))
|
||||
((my-let-values ("step") binds (bind ...) expr (maps ...) x rest . body)
|
||||
(my-let-values ("step") binds (bind ... . tmp) expr (maps ... (x tmp)) () rest . body))
|
||||
((my-let-values ((params expr) . rest) . body)
|
||||
(my-let-values ("step") () () expr () params rest . body))
|
||||
))
|
||||
|
||||
;(list
|
||||
; (my-let-values))
|
||||
|
||||
(write
|
||||
(my-let-values (((a b c) (values 1 2 3))) (list a b c)))
|
Loading…
Add table
Reference in a new issue