mattfact.scm 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. (define l
  2. ((lambda (f) (f (lambda (f) (lambda (z) (f (f (f (f (f z)))))))))
  3. (((lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x)))))
  4. (lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x))))))
  5. (lambda (f)
  6. (lambda (n)
  7. ((((((lambda (n)
  8. ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
  9. (lambda (t) (lambda (f) (t (lambda (void) void))))))
  10. (((lambda (n)
  11. (lambda (m)
  12. ((m
  13. (lambda (n)
  14. (lambda (f)
  15. (lambda (z)
  16. (((n (lambda (g) (lambda (h) (h (g f)))))
  17. (lambda (u) z))
  18. (lambda (u) u))))))
  19. n)))
  20. n)
  21. (lambda (f) (lambda (z) z))))
  22. (lambda (_)
  23. ((lambda (n)
  24. ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
  25. (lambda (t) (lambda (f) (t (lambda (void) void))))))
  26. (((lambda (n)
  27. (lambda (m)
  28. ((m
  29. (lambda (n)
  30. (lambda (f)
  31. (lambda (z)
  32. (((n (lambda (g) (lambda (h) (h (g f)))))
  33. (lambda (u) z))
  34. (lambda (u) u))))))
  35. n)))
  36. (lambda (f) (lambda (z) z)))
  37. n))))
  38. (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
  39. (lambda (_) (lambda (f) (lambda (z) (f z)))))
  40. (lambda (_)
  41. (((lambda (n) (lambda (m) (lambda (f) (lambda (z) ((m (n f)) z))))) n)
  42. (f
  43. (((lambda (n)
  44. (lambda (m)
  45. ((m
  46. (lambda (n)
  47. (lambda (f)
  48. (lambda (z)
  49. (((n (lambda (g) (lambda (h) (h (g f)))))
  50. (lambda (u) z))
  51. (lambda (u) u))))))
  52. n)))
  53. n)
  54. (lambda (f) (lambda (z) (f z)))))))))))))
  55. (define (succ n) (+ n 1))
  56. (define (natify church-numeral)
  57. ((church-numeral succ) 0))
  58. (print (natify l))