aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/forth2012/facility/structures-array.frt
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/common/lib/forth2012/facility/structures-array.frt')
-rw-r--r--amforth-6.5/common/lib/forth2012/facility/structures-array.frt24
1 files changed, 24 insertions, 0 deletions
diff --git a/amforth-6.5/common/lib/forth2012/facility/structures-array.frt b/amforth-6.5/common/lib/forth2012/facility/structures-array.frt
new file mode 100644
index 0000000..14e62df
--- /dev/null
+++ b/amforth-6.5/common/lib/forth2012/facility/structures-array.frt
@@ -0,0 +1,24 @@
+
+begin-structure hash
+ field: hash.key
+ field: hash.value
+end-structure
+
+\ inspired by CELLS
+: hash-cells hash * ;
+
+\ define a hash-array
+: hash:
+ hash-cells buffer:
+ does>
+ swap hash-cells +
+;
+
+\ define an array of some elements hash'es
+4 hash: my-hash
+cr 0 my-hash .
+cr 1 my-hash .
+
+\ store a key/value pair
+42 3 my-hash hash.key !
+4711 3 my-hash hash.value !