mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
Merge branch 'master' of github.com:ashinn/chibi-scheme
This commit is contained in:
commit
8b3f5512e1
3 changed files with 38 additions and 0 deletions
9
lib/srfi/219.sld
Normal file
9
lib/srfi/219.sld
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
(define-library (srfi 219)
|
||||||
|
(export define)
|
||||||
|
(import (rename (scheme base) (define native-define)))
|
||||||
|
(begin (define-syntax define
|
||||||
|
(syntax-rules ()
|
||||||
|
((define ((name . outer-args) . args) . body)
|
||||||
|
(define (name . outer-args) (lambda args . body)))
|
||||||
|
((define head . body)
|
||||||
|
(native-define head . body))))))
|
27
lib/srfi/219/test.sld
Normal file
27
lib/srfi/219/test.sld
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
(define-library (srfi 219 test)
|
||||||
|
(export run-tests)
|
||||||
|
(import (chibi) (chibi test) (rename (srfi 219) (define define-219)))
|
||||||
|
(begin
|
||||||
|
(define (run-tests)
|
||||||
|
(test-group
|
||||||
|
"srfi-219: define higher-order lambda"
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(define-219 ((greet/prefix prefix) suffix)
|
||||||
|
(string-append prefix " " suffix))
|
||||||
|
(let ((greet (greet/prefix "Hello")))
|
||||||
|
(test "Hello there!" (greet "there!"))))
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(define-219 ((append-to . a) . b)
|
||||||
|
(apply append (append a b)))
|
||||||
|
(test '()
|
||||||
|
((append-to '()) '()))
|
||||||
|
(test '(1 2 3 4 5 6 7 8)
|
||||||
|
((append-to '(1 2) '(3 4)) '(5 6) '(7 8))))
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(define-219 (((jenga a b) c d))
|
||||||
|
(list a b c d))
|
||||||
|
(test '(1 2 3 4)
|
||||||
|
(((jenga 1 2) 3 4))))))))
|
|
@ -34,6 +34,7 @@
|
||||||
(rename (srfi 158 test) (run-tests run-srfi-158-tests))
|
(rename (srfi 158 test) (run-tests run-srfi-158-tests))
|
||||||
(rename (srfi 160 test) (run-tests run-srfi-160-tests))
|
(rename (srfi 160 test) (run-tests run-srfi-160-tests))
|
||||||
(rename (srfi 166 test) (run-tests run-srfi-166-tests))
|
(rename (srfi 166 test) (run-tests run-srfi-166-tests))
|
||||||
|
(rename (srfi 219 test) (run-tests run-srfi-219-tests))
|
||||||
(rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests))
|
(rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests))
|
||||||
(rename (chibi base64-test) (run-tests run-base64-tests))
|
(rename (chibi base64-test) (run-tests run-base64-tests))
|
||||||
(rename (chibi bytevector-test) (run-tests run-bytevector-tests))
|
(rename (chibi bytevector-test) (run-tests run-bytevector-tests))
|
||||||
|
@ -103,6 +104,7 @@
|
||||||
(run-srfi-158-tests)
|
(run-srfi-158-tests)
|
||||||
(run-srfi-160-tests)
|
(run-srfi-160-tests)
|
||||||
(run-srfi-166-tests)
|
(run-srfi-166-tests)
|
||||||
|
(run-srfi-219-tests)
|
||||||
(run-scheme-bytevector-tests)
|
(run-scheme-bytevector-tests)
|
||||||
(run-base64-tests)
|
(run-base64-tests)
|
||||||
(run-bytevector-tests)
|
(run-bytevector-tests)
|
||||||
|
|
Loading…
Add table
Reference in a new issue