summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/haskell')
-rw-r--r--lambda-calcul/haskell/challenges.json19
1 files changed, 19 insertions, 0 deletions
diff --git a/lambda-calcul/haskell/challenges.json b/lambda-calcul/haskell/challenges.json
new file mode 100644
index 0000000..1261721
--- /dev/null
+++ b/lambda-calcul/haskell/challenges.json
@@ -0,0 +1,19 @@
+[
+ {"level":0, "expr": "x"},
+ {"level":1, "expr": "y"},
+ {"level":2, "expr": "#%foo"},
+ {"level":3, "expr": "(lam (x) x)"},
+ {"level":4, "expr": "(x y)"},
+ {"level":5, "expr": "((lam (x) x) y)"},
+ {"level":6, "expr": "((lam (x y) x) z)"},
+ {"level":7, "expr": "((lam (x y) x) z t)"},
+ {"level":8, "expr": "((lam (x y) x) z t foo)"},
+ {"level":9, "expr": "(let ((id (lam (x) x))) (id z))"},
+ {"level":10, "expr": "(let ((id (lam (x) x))) (id z))"},
+ {"level":11, "expr": "(let ((False (lam (f t) f))\n (True (lam (f t) t))\n (Not (lam (b) (b True False))))\n (Not True))"},
+ {"level":12, "expr": "(let ((False (lam (f t) f))\n (True (lam (f t) t))\n (Not (lam (b) (b True False))))\n (Not (Not True)))"},
+ {"level":13, "expr": "(def False (lam (f t) f))\n (def True (lam (f t) t))\n (def Not (lam (b) (b True False)))\n (Not (Not True)))"},
+ {"level":14, "expr": "(def False (lam (f t) f))\n (def True (lam (f t) t))\n (def Not (lam (b) (b True False)))"},
+ {"level":15, "expr": "(def Or (lam (a b) (a b True)))"},
+ {"level":16, "expr": "(Or (Not True) False)"}
+]