57 lines
833 B
Scheme
57 lines
833 B
Scheme
|
; what the
|
||
|
;(+ x (+ c z) (+ y (+ a b)))
|
||
|
;(+ x y z)
|
||
|
;hello-world
|
||
|
;()
|
||
|
;(x . y)
|
||
|
;(x . (y))
|
||
|
;(x . ((a b c)))
|
||
|
;(x y . ())
|
||
|
;(x . y z)
|
||
|
;(x . )
|
||
|
;(() x y z)
|
||
|
;(() . (x y z))
|
||
|
;(() . (x (y a b c d e . j) z))
|
||
|
;(() . (x (y a b "hello world" d "so good" . j) z))
|
||
|
|
||
|
;'10
|
||
|
;'(+ x (+ c z) '(+ y (+ a b)))
|
||
|
;(x 'y z)
|
||
|
|
||
|
;(x . 'y)
|
||
|
|
||
|
|
||
|
(+ -10 +20 30)
|
||
|
|
||
|
(
|
||
|
(lambda (x y) (+ x y))
|
||
|
100 200
|
||
|
)
|
||
|
|
||
|
|
||
|
;'(10 20 30)
|
||
|
|
||
|
'(+ x (+ c z) '(+ y (+ a b)))
|
||
|
|
||
|
;(define makeOperator
|
||
|
; (lambda (operator)
|
||
|
; (lambda (num1 num2)
|
||
|
; (operator num1 num2))))
|
||
|
;example useage - equivalent to (* 3 4):
|
||
|
;((makeOperator *) 3 4)
|
||
|
|
||
|
;(define (makeOperator operator)
|
||
|
; (lambda (num1 num2)
|
||
|
; (operator num1 num2)))
|
||
|
|
||
|
;(define (makeOperator operator)
|
||
|
; (define (foo num1 num2)
|
||
|
; (operator num1 num2))
|
||
|
; foo)
|
||
|
|
||
|
;(define ((foo x) y) (+ x y))
|
||
|
;(foo 5)
|
||
|
;; => procedure
|
||
|
;((foo 5) 3)
|
||
|
;; => 8
|