4223
|
1 GOTO 666
|
|
2
|
|
3 FOR map LEET f \@ . 0
|
|
4 LEET list \@ . 1
|
|
5 LEET result #<#>
|
|
6 LEET i 0
|
|
7 10 IF i < @LENGTH list
|
|
8 LET result _= f . (list . i)
|
|
9 LET i += 1
|
|
10 GOFOR 10
|
|
11 FI
|
|
12 KTHX result
|
|
13
|
|
14 FOR grep LEET f \@ . 0
|
|
15 LEET list \@ . 1
|
|
16 LEET result #<#>
|
|
17 LEET i 0
|
|
18 10 IF i < @LENGTH list
|
|
19 IF f . (list . i)
|
|
20 LET result _= #<(list . i)#>
|
|
21 FI
|
|
22 LET i += 1
|
|
23 GOFOR 10
|
|
24 FI
|
|
25 KTHX result
|
|
26
|
|
27 FOR s/// LEET str \@ . 0
|
|
28 LEET pat \@ . 1
|
|
29 LEET repl \@ . 2
|
|
30 LEET ms str ~ pat
|
|
31 IF ms
|
|
32 LEET me \_
|
|
33 IF @TYPE OF repl : "stuff"
|
|
34 LET repl .= str [ ms ] (me - ms)
|
|
35 FI
|
|
36 LET str str ] ms _ repl _ (str [ me)
|
|
37 FI
|
|
38 KTHX str
|
|
39
|
|
40 FOR s///g LEET str \@ . 0
|
|
41 LEET pat \@ . 1
|
|
42 LEET repl \@ . 2
|
|
43 LEET new
|
|
44 LEET p 0
|
|
45 LEET ms
|
|
46 LEET me
|
|
47 10 LET ms str [ p ~ pat
|
|
48 IF ms
|
|
49 LET me \_
|
|
50 LET new repl
|
|
51 IF @TYPE OF new : "stuff"
|
|
52 LET new .= str [ p [ ms ] (me - ms)
|
|
53 FI
|
|
54 LET new @STR new
|
|
55 LET str str ] (p + ms) _ new _ (str [ (p + me))
|
|
56 LET p += ms = me + ms + @LENGTH new
|
|
57 IF @NOT (p > @LENGTH str)
|
|
58 GOFOR 10
|
|
59 FI
|
|
60 FI
|
|
61 KTHX str
|
|
62
|
|
63 200 LEET b \@.0 _ @REVERSE (\@.1)
|
|
64 LEET result #<#>
|
|
65 LEET d
|
|
66 LEET i 0
|
|
67 LEET j @LENGTH b - 1
|
|
68 210 IF i < j
|
|
69 LET d cmp.#<(b.i) (b.j)#>
|
|
70 IF d < 0
|
|
71 LET result _= b [ i ] 1
|
|
72 LET i += 1
|
|
73 ELSE
|
|
74 IF d > 0
|
|
75 LET result _= b [ j ] 1
|
|
76 LET j -= 1
|
|
77 ELSE
|
|
78 LET result _= b [ i ] 1
|
|
79 LET i += 1
|
|
80 LET result _= b [ j ] 1
|
|
81 LET j -= 1
|
|
82 FI
|
|
83 FI
|
|
84 GOFOR 210
|
|
85 ELSE
|
|
86 IF i = j
|
|
87 LET result _= b [ i ] 1
|
|
88 FI
|
|
89 FI
|
|
90 KTHX result
|
|
91
|
|
92 FOR sort LEET cmp \@.0
|
|
93 LEET list \@.1
|
|
94 IF @LENGTH list < 2
|
|
95 KTHX list
|
|
96 FI
|
|
97 LEET mid @INT (@LENGTH list / 2)
|
|
98 ABRUF 200 #<@sort #<cmp (list ] mid)#> @sort #<cmp (list [ mid)#>#>
|
|
99 KTHX \_
|
|
100
|
|
101 FOR join LEET sep \@.0
|
|
102 LEET list \@.1
|
|
103 LEET result ""
|
|
104 IF @LENGTH list
|
|
105 LET result _= list.0
|
|
106 LEET i 1
|
|
107 10 IF i < @LENGTH list
|
|
108 LET result _= sep
|
|
109 LET result _= list.i
|
|
110 LET i += 1
|
|
111 GOFOR 10
|
|
112 FI
|
|
113 FI
|
|
114 KTHX result
|
|
115
|
|
116 FOR split LEET pat \@.0
|
|
117 LEET str \@.1
|
|
118 LEET result #<#>
|
|
119 IF "" ~ pat
|
|
120 LEET i 0
|
|
121 10 IF i < @LENGTH str
|
|
122 LET result _= #<(str . i)#>
|
|
123 LET i += 1
|
|
124 GOFOR 10
|
|
125 FI
|
|
126 ELSE
|
|
127 LEET p 0
|
|
128 LEET ms
|
|
129 20 LET ms str [ p ~ pat
|
|
130 IF ms
|
|
131 LET result _= #<(str [ p ] ms)#>
|
|
132 LET p += \_
|
|
133 GOFOR 20
|
|
134 FI
|
|
135 LET result _= #<(str [ p)#>
|
|
136 FI
|
|
137 KTHX result
|
|
138
|
|
139 FOR dumper LEET x \@
|
|
140 IF @TYPE OF x : "number"
|
|
141 KTHX x
|
|
142 FI
|
|
143 IF @TYPE OF x : "stream"
|
|
144 KTHX "{IO}" _ x
|
|
145 FI
|
|
146 IF @TYPE OF x : "stuff"
|
|
147 KTHX "{EXPR}?"
|
|
148 FI
|
|
149 IF @TYPE OF x : "nothing"
|
|
150 KTHX "()"
|
|
151 FI
|
|
152 IF @TYPE OF x : "list"
|
|
153 KTHX "#<" _ @join #<" " @map #<@OMFG #<@dumper \@#> x#>#> _ "#>"
|
|
154 FI
|
|
155 KTHX "\"" _ @s///g #<x "'P!\\\"'" @OMFG "\\\V@REVERSE (@ORD \@ ` 8)"#> _"\""
|
|
156
|
|
157 FOR x LEET s \@ . 0
|
|
158 LEET n \@ . 1
|
|
159 LEET res ""
|
|
160 10 IF n > 0
|
|
161 LET res _= s
|
|
162 LET n -= 1
|
|
163 GOFOR 10
|
|
164 FI
|
|
165 KTHX res
|
|
166
|
|
167 666
|