;; In Emacs, open this file in -*- Scheme -*- mode ;; Test the "fun" expression (@byte-write 73) ((fun (b) (@byte-write b)) 65) ((fun (b) (@byte-write b) (@byte-write (@+ b 1))) 66) (@byte-write ((fun (x) x) 68)) (let ((compose (fun (f g) (fun (x) (f (g x))))) (succ (fun (x) (@+ x 1))) (twice (fun (x) (@+ x x)))) (@byte-write ((compose succ twice) 34))) ((fun (x y z) #u) (@byte-write 70) (@byte-write 71) (@byte-write 72)) (let* ((fact (fun (self x) (if (@= 0 x) 1 (@* x (self self (@- x 1)))))) (fix (fun (f x) (f f x)))) (if (@= (fix fact 5) 120) (@byte-write 73)))