diff options
Diffstat (limited to 'lambda-calcul')
| -rw-r--r-- | lambda-calcul/haskell/challenges.json | 19 |
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)"} +] |
