aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2015-12-14 10:55:05 +0100
committerDrahflow <drahflow@gmx.de>2015-12-14 10:55:05 +0100
commit41cd367f19df069a9c58b42828a135b53512f789 (patch)
treec691a626fd4b535fc3111d95bde2af5bf37c5b98
parent6c169b869dc5d97c3bdd05c87c828471bc29ef1c (diff)
Wrapper for default values
-rw-r--r--elymas/lib/wrapper.ey10
-rw-r--r--elymas/loaded.ey1
-rw-r--r--elymas/shared.ey1
-rw-r--r--examples/working-loaded/wrapper.test13
4 files changed, 25 insertions, 0 deletions
diff --git a/elymas/lib/wrapper.ey b/elymas/lib/wrapper.ey
new file mode 100644
index 0000000..144125b
--- /dev/null
+++ b/elymas/lib/wrapper.ey
@@ -0,0 +1,10 @@
+{ ==v ==source
+ /has source keys eq any {
+ { /d defvs d source .has { d source * } { v } ? * }
+ } {
+ { /d defvs d source dom eq any { d source * } { v } ? * }
+ } ? *
+ < "#*" deffst source >'
+} /default deffd
+
+# vim: syn=elymas
diff --git a/elymas/loaded.ey b/elymas/loaded.ey
index 7fa3945..b422637 100644
--- a/elymas/loaded.ey
+++ b/elymas/loaded.ey
@@ -19,6 +19,7 @@
"lib/list.ey"
"lib/map.ey"
"lib/tree.ey"
+ "lib/wrapper.ey"
"lib/sort.ey"
"lib/crypt.ey"
] { _ dump include }' each
diff --git a/elymas/shared.ey b/elymas/shared.ey
index 06f18f9..0770612 100644
--- a/elymas/shared.ey
+++ b/elymas/shared.ey
@@ -20,6 +20,7 @@
"lib/list.ey"
"lib/map.ey"
"lib/tree.ey"
+ "lib/wrapper.ey"
"lib/sort.ey"
"lib/crypt.ey"
] { _ dump include }' each
diff --git a/examples/working-loaded/wrapper.test b/examples/working-loaded/wrapper.test
new file mode 100644
index 0000000..321823c
--- /dev/null
+++ b/examples/working-loaded/wrapper.test
@@ -0,0 +1,13 @@
+map ==m
+m 7 default ==md
+
+5 /foo md =[]
+/foo md * dump
+/bar md * dump
+
+list ==l
+l 7 default ==ld
+
+5 ld .append1
+0 ld * dump
+12 ld * dump