aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/forth2012/facility/structures-array.frt
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
commit67d25d837ac55f28a366c0a3b262e439a6e75fc3 (patch)
treedf7715c7724c5935ab87c807f3b8b4ef529315e3 /amforth-6.5/common/lib/forth2012/facility/structures-array.frt
parente0d6784e89dba33226c0edb815bb974486fa7c48 (diff)
Add AmForth
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 !