# an alternative to }, moving the top stack element # into closure storage and pushing it back before # executing the block { "}" | * { /f deff /x defv { x f } } quoted { } { * } ? * } "}_" defq 5 { { dump }_ } * /dumpfive deff 5 { dump }_ /dumpfivetwo deff 7 dumpfive -- 7 dumpfivetwo -- # import members of other objects into local scope { "_" | "021" | "-" | ".|" | "01" | "-" | |deff } /usef defq # codewalker { "lol" dump } /lol deff { 1 /cont defv { cont } { 0 { exe /walkelem deff { sys .out .writestr } /out deff _ { { " " out } rep }_ /indent deff { 2 add walkelem }_ /walk deff _ code [ { indent [ "\"" -102 "\"\n" ] |out each } { indent _ sym _ out "{" eq { 0 =cont |lol } { -- } ? * "\n" out } { blk |walk each } ] * * } * } loop } /codewalk defq { f "t" g h { a b { c d } e } codewalk } *