< [ ] ==:NONE 0 ==l # placeholder, zero value is never read { -102 .len -021 ? }" "#?" defmd { .len }" "#len" defmd { 0 -01 .len range }" "#dom" defmd { [ 0 ] }" _ "#in" deffd "#out" deffd { ==m ==l l .len { l .start l .len 1 sub { 1 -01 * } rep m .start 1 -102 =[] l .len m .len add l .setLen } { m .start l .setStart m .len l .setLen } ? * m .end l .setEnd 0 m .setLen NONE m .setStart NONE m .setEnd l # FIXME think hard whether cat should be destructive } "#cat" defmd { ==l =*f l .start ==n l .len { n 2 dearray =n f }" rep } "#each" defmd { l .len mod ==i l .start i { 1 -01 * } rep 0 -01 * } '0.0 /access deffd { =l access } "#*" defmd { ==l ==i ==v l .len not { "=[] into empty list" die } rep l .start i l .len mod { 1 -01 * } rep v 0 -102 =[] } "#=[]" defmd { ==l list ==m l .len { [ 0 NONE ] _ m .setEnd l .len 1 sub { [ 0 -102 ] } rep m .setStart l .len m .setLen } { } ? * m } "#iclone" defmd { 0 }" "#istart" deffd { .len eq }" "#iend" defmd { }" "#itrans" deffd { 1 add }" "#istep" deffd { =l [ -01 NONE ] l .len { _ 1 l .end =[] }" { _ l .setStart }" ? * l .setEnd l .len 1 add l .setLen }' /append1 defmd { =l l .len 2 ge { l .start l .len _ 1 sub l .setLen 2 sub { 1 -01 * } rep _ l .setEnd NONE 1 -102 =[] } { 0 l .setLen NONE l .setStart NONE l .setEnd } ? * }' /pop defmd { { .append1 }_ '0. * } /append defmd { < 0 ==len { =len }' =*setLen NONE ==start { =start }' =*setStart NONE ==end { =end }' =*setEnd > }' > -- /list deffd # vim: syn=elymas