about summary refs log tree commit diff stats
path: root/js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt
diff options
context:
space:
mode:
Diffstat (limited to 'js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt')
-rw-r--r--js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt b/js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt
new file mode 100644
index 0000000..68c7c66
--- /dev/null
+++ b/js/scripting-lang/c/turing_complete_demos/04_simple_functions.txt
@@ -0,0 +1,27 @@
+/* Simple Function Examples */
+
+..out "=== Functions: Computational Building Blocks ===";
+
+/* Basic function composition */
+add_five : x -> x + 5;
+double : x -> x * 2;
+result1 : double (add_five 10);
+..assert result1 = 30;
+..out "Composition: double(add_five(10)) = 30";
+
+/* Higher-order function */
+apply_twice : f x -> f (f x);
+increment : x -> x + 1;
+result2 : apply_twice @increment 5;
+..assert result2 = 7;
+..out "Apply twice: increment(increment(5)) = 7";
+
+/* Function returning function */
+make_adder : n -> x -> x + n;
+add_ten : make_adder 10;
+result3 : add_ten 25;
+..assert result3 = 35;
+..out "Function factory: add_ten(25) = 35";
+
+..out "---";
+..out "✅ Functions enable modular computation";
\ No newline at end of file