summaryrefslogtreecommitdiff
path: root/080_blog/00120_Lambda-Calculus-(Haskell)/index.md
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2019-02-19 12:25:40 +0100
committerMiguel <m.i@gmx.at>2019-02-19 12:25:40 +0100
commit5c530e67256f8ecbd93336ba4e876acbba73f716 (patch)
tree7744eed3a34d0a7c3ca6deddd71a02801858a767 /080_blog/00120_Lambda-Calculus-(Haskell)/index.md
parentb71633cad69d0b8fade8419cfd7a333615ad3aee (diff)
cleaning up more..
Diffstat (limited to '080_blog/00120_Lambda-Calculus-(Haskell)/index.md')
-rw-r--r--080_blog/00120_Lambda-Calculus-(Haskell)/index.md38
1 files changed, 0 insertions, 38 deletions
diff --git a/080_blog/00120_Lambda-Calculus-(Haskell)/index.md b/080_blog/00120_Lambda-Calculus-(Haskell)/index.md
deleted file mode 100644
index 25c6b83..0000000
--- a/080_blog/00120_Lambda-Calculus-(Haskell)/index.md
+++ /dev/null
@@ -1,38 +0,0 @@
-Lambda Calculus
-===============
-
- May 2, 2018
-
-Playing with Type Quantifiers and Haskell's Rank 2 Type Polymorphsim,
-implementing Boolean logic from scratch. We use the conventional
-definitions for `True` an `False` also known as Church booleans, after Alonzo Church, who
-intruced them along Lambda Calculus in the 1930s [1].
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.haskell .numberLines}
-{-# LANGUAGE Rank2Types #-}
-
-fTrue :: forall a. a->a->a
-fTrue x y = x
-
-fFalse :: forall a. a->a->a
-fFalse x y = y
-
-fAnd :: (forall a. a->a->a)->(forall a. a->a->a)->(forall a. a->a->a)
-fAnd p q = p q p
-
-fOr :: (forall a. a->a->a)->(forall a. a->a->a)->(forall a. a->a->a)
-fOr p q = p p q
-
-fNot :: (forall a. a->a->a)->(forall a. a->a->a)
-fNot p = p fFalse fTrue
-
-ifThenElse :: (forall a. a->a->a)->(forall a. a->a->a)
- ->(forall a. a->a->a)->(forall a. a->a->a)
-ifThenElse p a b = p a b
-
--- Example --
-
-main = print $ (ifThenElse fFalse fFalse $ fAnd fTrue $ fNot fFalse) "T" "F"
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- [1] https://en.wikipedia.org/wiki/Lambda_calculus