diff options
| author | Drahflow <drahflow@gmx.de> | 2015-06-17 11:11:44 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2015-06-17 11:11:44 +0200 |
| commit | 35791f772740ea9b8a5772f8110a1e3ea33a34d7 (patch) | |
| tree | 7412bbbe054bb5bf6c2612a85d33fc00b2ad2fbd | |
| parent | d1c9d2a83f1904485c7751a7e5691bfb7f1ade17 (diff) | |
Make lists a bit faster
| -rw-r--r-- | elymas/lib/list.ey | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/elymas/lib/list.ey b/elymas/lib/list.ey index 20d569e..08171fb 100644 --- a/elymas/lib/list.ey +++ b/elymas/lib/list.ey @@ -1,10 +1,11 @@ < [ ] ==: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 + { -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 @@ -24,7 +25,7 @@ } "#cat" defmd { ==l =*f l .start ==n - l .len { n 2 dearray =n f } rep + l .len { n 2 dearray =n f }" rep } "#each" defmd { ==l l .len mod ==i l .start i { 1 -01 * } rep @@ -45,12 +46,12 @@ } { } ? * m } "#iclone" defmd - { 0 } "#istart" deffd - { .len eq } "#iend" defmd - { } "#itrans" deffd - { 1 add } "#istep" deffd + { 0 }" "#istart" deffd + { .len eq }" "#iend" defmd + { }" "#itrans" deffd + { 1 add }" "#istep" deffd - { ==l [ -01 NONE ] + { =l [ -01 NONE ] l .len { _ 1 l .end =[] }" { @@ -58,9 +59,9 @@ }" ? * l .setEnd l .len 1 add l .setLen - } /append1 defmd + }' /append1 defmd - { ==l + { =l l .len 2 ge { l .start l .len _ 1 sub l .setLen @@ -72,15 +73,15 @@ NONE l .setStart NONE l .setEnd } ? * - } /pop defmd + }' /pop defmd { { .append1 }_ '0. * } /append defmd { < - 0 ==len { =len } =*setLen - NONE ==start { =start } =*setStart - NONE ==end { =end } =*setEnd - > } + 0 ==len { =len }' =*setLen + NONE ==start { =start }' =*setStart + NONE ==end { =end }' =*setEnd + > }' > -- /list deffd # vim: syn=elymas |
