||'@include' (https://gist.casuallyblue.dev/wryl/d3c64c1df98e48cbaff3b3dcdc189e3f/raw/HEAD/map.nv lib/rpn.nv) |::(/* */)| |::(/* $x)| :: /* ||::( /* Now we can add comments to what we are doing. */ /* .. but maybe not too many? */ ) ||:fresh ID: 0 |:: next ID :@rpn data: $id| :fresh ID: $id |:: next ID? :fresh ID: $id| :@rpn: ($id 1 +) |:: {}| :: ({ }) |:: { :fresh ID: $id?| :self: $id :: next ID |:: } :self: $ :parent: $parent :field: $field| :@map: set :@map.key: $parent $field :@map.value: $ |:: } :self: $ :field: $field| :@map: set :@map.key: $field :@map.value: $ |:: } :self: $| :data: $ |:: ($x = {})| :: ($x = { }) |:: ($x = {) :self: $?| :: { :parent: $ :field: $x |:: ($x = {)| :: { :field: $x |:: ($x = $y) :self: $?| :@map: set :@map.key: $ $x :@map.value: $y |:: $x :self: $?| :@map: set :@map.key: $ $x :@map.value: ||::( world = { kitchen = { table chairs = { /* Should probably add some way to do lists.. */ [chair 1] [chair 2] [chair 3] [chair 4] } players = { 0 = { name = [Wryl Gardner] position = { x = 10 y = 20 } inventory = { sword shield gold = { amount = 300 } } } 1 = { name = [A Brave Adventurer] position = { x = 100 y = 200 } inventory = { [a stick] [some weird bag of herbs] } } } } } [to-do list] = { [somehow, build some cool string support using this system.] [write an accessor library, so we can actually traverse these objects.] [demonstrate their usage/interplay with math expressions, rules, etc.] } ) |: comment section :| ##" (wryl) This was really, really fun to work on. Took very little brain power. "