47 lines
1.4 KiB
Scheme
47 lines
1.4 KiB
Scheme
(begin
|
|
;;; begin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal '() (begin))
|
|
(assert-equal 123 (begin 123))
|
|
(assert-equal 456 (begin 123 456))
|
|
(assert-equal 789 (begin 123 456 789))
|
|
|
|
;;; define ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal
|
|
'(123 579)
|
|
(begin
|
|
(define x 123)
|
|
(define y (+ x 456))
|
|
(list x y)))
|
|
(assert-equal
|
|
'(123 456)
|
|
(begin
|
|
(define x 123)
|
|
(define old x)
|
|
(define x 456)
|
|
(list old x)))
|
|
|
|
;;; if ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 123 (if #true 123 456))
|
|
(assert-equal 123 (if "foo" 123 456))
|
|
(assert-equal 456 (if #false 123 456))
|
|
|
|
;;; quote ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal '+ (quote +))
|
|
(assert-equal '+ '+)
|
|
(assert-equal '() (quote ()))
|
|
(assert-equal '() '())
|
|
(assert-equal #true (quote #true))
|
|
(assert-equal #true '#true)
|
|
(assert-equal #false (quote #false))
|
|
(assert-equal #false '#false)
|
|
;(assert-equal #\n (quote #\n))
|
|
;(assert-equal #\n '#\n)
|
|
(assert-equal 'foo (quote foo))
|
|
(assert-equal 'foo 'foo)
|
|
(assert-equal "foo" (quote "foo"))
|
|
(assert-equal "foo" '"foo")
|
|
(assert-equal 123 (quote 123))
|
|
(assert-equal 123 '123)
|
|
(assert-equal '(cons 123 456) (quote (cons 123 456)))
|
|
(assert-equal '(cons 123 456) '(cons 123 456))
|
|
)
|