fork(1) download
  1. #|
  2. (\g -> (\x-> x x) (\x-> g (\n-> (x x) n)))
  3. (\fact -> \n k ->
  4.   (equals n 0)
  5.   (\True -> k 1)
  6.   (\False -> decr n
  7.   (\n1-> fact n1
  8.   (\f1-> mult n f1 k))))
  9. 5 display |#
  10.  
  11. (define (mult a b k) (k (* a b)))
  12. (define (decr c k) (k (- c 1)))
  13. (define (equals d e s f) (if (= d e) (s) (f)))
  14.  
  15. (((lambda (g)
  16. ( (lambda (x) (x x))
  17. (lambda (x) (g (lambda (n k) ((x x) n k))))))
  18.  
  19. (lambda (fact)
  20. (lambda (n k)
  21. (equals n 0 (lambda () (k 1))
  22. (lambda () (decr n
  23. (lambda (n1) (fact n1
  24. (lambda (f1) (mult n f1 k))))))))))
  25.  
  26. 5 (lambda (x) (display x)) )
  27.  
Success #stdin #stdout 0.03s 8616KB
stdin
Standard input is empty
stdout
120