File: work.scm

package info (click to toggle)
elk 3.0-6
  • links: PTS
  • area: main
  • in suites: potato, slink
  • size: 4,068 kB
  • ctags: 3,123
  • sloc: ansic: 20,686; lisp: 5,232; makefile: 419; awk: 91; sh: 21
file content (43 lines) | stat: -rw-r--r-- 1,450 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
;;; -*-Scheme-*-
;;;
;;; Putting Scheme to Work
;;; By Olivier Danvy
;;; Bigre special edition "Putting Scheme to Work"

(define fix
  (let ((z (lambda (P)
             (lambda (u)
               (lambda (t)
                 (lambda (t)
                   (lambda (i)
                     (lambda (n)
                       (lambda (g)
                         (lambda (S)
                           (lambda (c)
                             (lambda (h)
                               (lambda (e)
                                 (lambda (m)
                                   (lambda (e)
                                     (lambda (t)
                                       (lambda (o)
                                         (lambda (W)
                                           (lambda (o)
                                             (lambda (r)
                                               (lambda (k)
                                                 (lambda (!)
                                                   (! (lambda (break)
							(((((((((((((((((((((W o) r) k)
									  W) o) r) k)
								      W) o) r) k)
								  W) o) r) k)
							      W) o) r) k) !)
							 break)))))))))))))))))))))))))
    (let ((Z z))
      (((((((((((((((((((z z) z) z) z) z) Z) Z) Z) Z) Z) Z) Z) z) z) z) z) z) z) z))))

(print
((fix (lambda (f)
        (lambda (n)
          (if (zero? n)
              1
              (* n (f (- n 1))))))) 9))