summaryrefslogtreecommitdiff
path: root/lambda-calcul/rust/sample
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/rust/sample')
-rw-r--r--lambda-calcul/rust/sample/test.txt5
-rw-r--r--lambda-calcul/rust/sample/test01/input1
-rw-r--r--lambda-calcul/rust/sample/test01/output1
-rw-r--r--lambda-calcul/rust/sample/test02/input6
-rw-r--r--lambda-calcul/rust/sample/test02/output4
-rw-r--r--lambda-calcul/rust/sample/test03/input12
-rw-r--r--lambda-calcul/rust/sample/test03/output9
-rw-r--r--lambda-calcul/rust/sample/test_bool.txt15
-rw-r--r--lambda-calcul/rust/sample/test_full.txt1
-rw-r--r--lambda-calcul/rust/sample/test_let.txt1
-rw-r--r--lambda-calcul/rust/sample/test_nat.txt9
-rw-r--r--lambda-calcul/rust/sample/test_normal.txt1
12 files changed, 65 insertions, 0 deletions
diff --git a/lambda-calcul/rust/sample/test.txt b/lambda-calcul/rust/sample/test.txt
new file mode 100644
index 0000000..76dc68a
--- /dev/null
+++ b/lambda-calcul/rust/sample/test.txt
@@ -0,0 +1,5 @@
+12
+foo
+ true
+
+(x x)
diff --git a/lambda-calcul/rust/sample/test01/input b/lambda-calcul/rust/sample/test01/input
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/lambda-calcul/rust/sample/test01/input
@@ -0,0 +1 @@
+12
diff --git a/lambda-calcul/rust/sample/test01/output b/lambda-calcul/rust/sample/test01/output
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/lambda-calcul/rust/sample/test01/output
@@ -0,0 +1 @@
+12
diff --git a/lambda-calcul/rust/sample/test02/input b/lambda-calcul/rust/sample/test02/input
new file mode 100644
index 0000000..81a0443
--- /dev/null
+++ b/lambda-calcul/rust/sample/test02/input
@@ -0,0 +1,6 @@
+(def pair (lam (a b f) (f a b)))
+
+(def fst (lam p (p (lam ( a b) a))))
+(def snd (lam p (p (lam ( a b) b))))
+
+(fst (snd (pair 1 (pair 2 0))))
diff --git a/lambda-calcul/rust/sample/test02/output b/lambda-calcul/rust/sample/test02/output
new file mode 100644
index 0000000..c61e10e
--- /dev/null
+++ b/lambda-calcul/rust/sample/test02/output
@@ -0,0 +1,4 @@
+true
+true
+true
+2
diff --git a/lambda-calcul/rust/sample/test03/input b/lambda-calcul/rust/sample/test03/input
new file mode 100644
index 0000000..6cff466
--- /dev/null
+++ b/lambda-calcul/rust/sample/test03/input
@@ -0,0 +1,12 @@
+(def zero (lam (f s) s))
+(def succ (lam (n f s) (f (n f s))))
+
+(def one (succ zero))
+(def two (succ one))
+(def three (succ two))
+(def four (succ three))
+(def five (succ four))
+
+(def plus (lam (a b f s) (a f (b f s))))
+
+(plus one three)
diff --git a/lambda-calcul/rust/sample/test03/output b/lambda-calcul/rust/sample/test03/output
new file mode 100644
index 0000000..fd56297
--- /dev/null
+++ b/lambda-calcul/rust/sample/test03/output
@@ -0,0 +1,9 @@
+true
+true
+true
+true
+true
+true
+true
+true
+four
diff --git a/lambda-calcul/rust/sample/test_bool.txt b/lambda-calcul/rust/sample/test_bool.txt
new file mode 100644
index 0000000..a1b1309
--- /dev/null
+++ b/lambda-calcul/rust/sample/test_bool.txt
@@ -0,0 +1,15 @@
+(def True (lam (x y) x))
+(def False (lam (x y) y))
+(def and (lam (a b) (a b False)))
+(def or (lam (a b) (a True b)))
+(def not (lam a (a False True)))
+
+(and True True)
+(and True False)
+(and False True)
+(and False False)
+
+(or True True)
+(or True False)
+(or False True)
+(or False False)
diff --git a/lambda-calcul/rust/sample/test_full.txt b/lambda-calcul/rust/sample/test_full.txt
new file mode 100644
index 0000000..ece76b8
--- /dev/null
+++ b/lambda-calcul/rust/sample/test_full.txt
@@ -0,0 +1 @@
+(((lam x (lam x x)) 13) true)
diff --git a/lambda-calcul/rust/sample/test_let.txt b/lambda-calcul/rust/sample/test_let.txt
new file mode 100644
index 0000000..6027cd0
--- /dev/null
+++ b/lambda-calcul/rust/sample/test_let.txt
@@ -0,0 +1 @@
+(let (foo (lam x x)) ((let (foo foo) foo) 13))
diff --git a/lambda-calcul/rust/sample/test_nat.txt b/lambda-calcul/rust/sample/test_nat.txt
new file mode 100644
index 0000000..81a6e9d
--- /dev/null
+++ b/lambda-calcul/rust/sample/test_nat.txt
@@ -0,0 +1,9 @@
+(def pair (lam (a b f) (f a b)))
+(def fst (lam p (p (lam (a b) a))))
+(def snd (lam p (p (lam (a b) b))))
+
+(def zero (lam (f s) s))
+(def succ (lam (n f s) (f (n f s))))
+
+(def is-zero (lam n
+ (n (lam x False) true)))
diff --git a/lambda-calcul/rust/sample/test_normal.txt b/lambda-calcul/rust/sample/test_normal.txt
new file mode 100644
index 0000000..00abde9
--- /dev/null
+++ b/lambda-calcul/rust/sample/test_normal.txt
@@ -0,0 +1 @@
+((lam x 1) ((lam x (x x)) (lam x (x x))))