summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* add temp disclaim on pub/READMEAndrew Yu2021-12-121-0/+3
|
* add pub folderAndrew Yu2021-12-122-0/+3
|
* initAndrew Yu2021-12-121-0/+22
)
-rw-r--r--js/scripting-lang/scratch_tests/flatten_scrap.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/js/scripting-lang/scratch_tests/flatten_scrap.txt b/js/scripting-lang/scratch_tests/flatten_scrap.txt
new file mode 100644
index 0000000..e5d5c96
--- /dev/null
+++ b/js/scripting-lang/scratch_tests/flatten_scrap.txt
@@ -0,0 +1,25 @@
+/* Problem: Flatten nested tables */
+nested : {
+  level1: {
+    a: {value: 1},
+    b: {value: 2}
+  },
+  level2: {
+    c: {value: 3}
+  }
+};
+
+/* Recursive flattening function */
+flatten : table -> 
+  when (t.has table "value") is
+    true then table
+    _ then reduce @t.merge {} (map @flatten_entry table);
+
+flatten_entry : entry -> 
+  when (t.has entry "value") is
+    true then entry
+    _ then flatten entry;
+
+/* Apply flattening */
+flat : flatten nested;
+/* Result: {a: {value: 1}, b: {value: 2}, c: {value: 3}} */