blob: 71d461695bb29e4958b271eee7bbc1b7f451f602 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
|defv "==" deff
|deff "=*" deff
{ "}" | *
{ /f deff /x defv
{ x f }
} quoted { } { * } ? *
} "}_" defq
{ -1110 ; ==f =*a len _
{
0 a
1 -102 1 sub range f each
}' { "fold on empty array" die }'
? *
} /fold deff
{ _ =*a len
[ 1 -1202 range { -110 sub a -01 }' each -- ]
} /reverse deff
{ |or fold } /any deff
{ |and fold } /all deff
{ =*p {
[ -01 { _ p { } { -- } ? * } each ]
} } /engrep deff
{ engrep * } /grep deff
{ -110 ; engrep |dom -20*1* } /indices deff
{ =*p _ =*a len ==l
1 neg ==r
0 {
_ l lt 1 neg r eq and
} {
_ a p { _ =r } { } ? *
1 add
} loop --
r
} /index deff
{
not { "Assertion failure" die } rep
} /assert deff
{ ==s
[ s keys { s -01 . } each ]
} /values deff
{ _ =*conds len ==max
0 ==i { i max lt } {
i conds { i 1 add conds * max =i } { } ? *
i 2 add =i
} loop
} /conds deff
# vim: syn=elymas
|