summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/bool.lisp
blob: 7a1215d6f0bcf8d01341c6c2a1a21f7fe1f8b46f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
(let ((False (lam (f t) f))
      (True (lam (f t) t))
      (Not (lam (b) (b True False)))
      (And (lam (a b) (a False b)))
      (Or (lam (a b) (a b True)))
      (If (lam (b x y) (b x y)))
      (Zero (lam (z s) z))
      (Succ (lam (n z s) (s n)))
      (One (Succ Zero))
      (Two (Succ One))
      (Three (Succ Two))
      (IsZero (lam (n) (n True (lam (m) False)))))
  (Or (IsZero One) (IsZero Two)))