Mercurial > repos > rhope
annotate extendlib.rhope @ 104:2d2da148d844
Performance improvement for string comparisons
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 25 Aug 2010 03:19:57 +0000 |
parents | 0083b2f7b3c7 |
children |
rev | line source |
---|---|
0 | 1 |
2 Val[in:out] | |
3 { | |
4 out <- in | |
5 } | |
6 | |
7 _Map[list,index,worker:out] | |
8 { | |
9 newval <- [ | |
10 [worker]Do[ | |
11 [()]Append[ [list]Index[index] ] | |
12 ] | |
13 ]Index[0] | |
14 | |
15 [list]Next[index] | |
16 { | |
17 out <- [_Map[list, ~, worker]]Set[index, newval] | |
18 }{ | |
19 out <- [list]Set[index, newval] | |
20 } | |
21 } | |
22 | |
23 Map[list,worker:out] | |
24 { | |
25 [list]First | |
26 { | |
27 out <- _Map[list, ~, worker] | |
28 }{ | |
29 out <- list | |
30 } | |
31 } | |
32 | |
48
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
33 _SMap[list,index,worker:out] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
34 { |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
35 newval <- [ |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
36 [worker]Do[ |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
37 [()]Append[ [list]Index[index] ] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
38 ] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
39 ]Index[0] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
40 |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
41 [list]Next[index] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
42 { |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
43 out <- _SMap[[list]Set[index, newval], ~, worker] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
44 }{ |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
45 out <- [list]Set[index, newval] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
46 } |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
47 } |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
48 |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
49 SMap[list,worker:out] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
50 { |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
51 [list]First |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
52 { |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
53 out <- _SMap[list, ~, worker] |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
54 }{ |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
55 out <- list |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
56 } |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
57 } |
a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
Mike Pavone <pavone@retrodev.com>
parents:
47
diff
changeset
|
58 |
0 | 59 _Key Value Map[list,index,newlist,worker:out] |
60 { | |
61 [worker]Do[ | |
62 [[()]Append[ [list]Index[index] ]]Append[index] | |
63 ] | |
64 { | |
65 newval <- [~]Index[0] | |
66 newkey <- [~]Index[1] | |
67 } | |
68 | |
69 next <- [newlist]Set[newkey, newval] | |
70 | |
71 [list]Next[index] | |
72 { | |
73 out <- _Key Value Map[list, ~, next, worker] | |
74 }{ | |
75 out <- Val[next] | |
76 } | |
77 } | |
78 | |
79 New Like@List[in:out] | |
80 { | |
81 out <- () | |
82 } | |
83 | |
84 New Like@Dictionary[in:out] | |
85 { | |
47
6202b866d72c
Cleaned up constructor names and merged some other changes in to support the Rhope website
Mike Pavone <pavone@retrodev.com>
parents:
30
diff
changeset
|
86 out <- Dictionary[] |
0 | 87 } |
88 | |
89 Key Value Map[list,worker:out] | |
90 { | |
91 [list]First | |
92 { | |
93 out <- _Key Value Map[list, ~, New Like[list], worker] | |
94 }{ | |
95 out <- New Like[list] | |
96 } | |
97 } | |
98 | |
1
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
99 To String@String[string:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
100 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
101 out <- string |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
102 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
103 |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
104 Empty@String[string:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
105 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
106 out <- "" |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
107 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
108 |
0 | 109 In[needle,haystack:found?] |
110 { | |
1
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
111 [haystack]Get DString[To String[needle]] |
0 | 112 { |
113 found? <- Yes | |
114 } {} {} { | |
115 found? <- No | |
116 } | |
117 } | |
118 | |
119 Left Trim[string,trim:trimmed] | |
120 { | |
121 If[ [[string]Length] > [0] ] | |
122 { | |
123 first,rest <- [string]Slice[1] | |
124 If[ [first]In[trim] ] | |
125 { | |
126 trimmed <- Left Trim[rest, trim] | |
127 }{ | |
128 trimmed <- string | |
129 } | |
130 }{ | |
131 trimmed <- string | |
132 } | |
133 } | |
134 | |
135 Right Trim[string,trim:trimmed] | |
136 { | |
137 If[ [[string]Length] > [0] ] | |
138 { | |
139 rest,last <- [string]Slice[ [[string]Length] - [1]] | |
140 If[ [last]In[trim] ] | |
141 { | |
142 trimmed <- Right Trim[rest, trim] | |
143 }{ | |
144 trimmed <- string | |
145 } | |
146 }{ | |
147 trimmed <- string | |
148 } | |
149 } | |
150 | |
151 Trim[string,trim:trimmed] | |
152 { | |
153 left <- Left Trim[string, trim] | |
154 trimmed <- Right Trim[left, trim] | |
155 } | |
156 | |
157 Max[a,b:max] | |
158 { | |
159 If[[a] > [b]] | |
160 { | |
161 max <- a | |
162 }{ | |
163 max <- b | |
164 } | |
165 } | |
166 | |
75
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
167 Min[a,b:min] |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
168 { |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
169 If[[a] < [b]] |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
170 { |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
171 min <- a |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
172 }{ |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
173 min <- b |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
174 } |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
175 } |
0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
Mike Pavone <pavone@retrodev.com>
parents:
69
diff
changeset
|
176 |
0 | 177 Count Substring[string,substring:out] |
178 { | |
179 out <- Max[[[[string]Split[substring]]Length] - [1], 0] | |
180 } | |
181 | |
182 _Key Value Join[dict,key,key sep,val sep,string:out] | |
183 { | |
184 new string <- [[[string]Append[key]]Append[key sep]]Append[ [dict]Index[key] ] | |
185 [dict]Next[key] | |
186 { | |
187 out <- _Key Value Join[dict, ~, key sep, val sep, [new string]Append[val sep]] | |
188 }{ | |
189 out <- Val[new string] | |
190 } | |
191 } | |
192 | |
193 Key Value Join[dict,key sep,val sep:out] | |
194 { | |
195 [dict]First | |
196 { | |
197 out <- _Key Value Join[dict, ~, key sep, val sep, ""] | |
198 }{ | |
199 out <- "" | |
200 } | |
201 } | |
202 | |
203 _Combine[source,dest,key:out] | |
204 { | |
205 new dest <- [dest]Set[key, [source]Index[key]] | |
206 [source]Next[key] | |
207 { | |
208 out <- _Combine[source, new dest, ~] | |
209 }{ | |
210 out <- Val[new dest] | |
211 } | |
212 } | |
213 | |
214 Combine[source,dest:out] | |
215 { | |
216 [source]First | |
217 { | |
218 out <- _Combine[source, dest, ~] | |
219 }{ | |
220 out <- dest | |
221 } | |
222 } | |
223 | |
224 _Fold[list,index,current,worker:out] | |
225 { | |
226 newval <- [ | |
227 [worker]Do[ | |
228 [[[()]Append[ current ]]Append[ [list]Index[index] ]]Append[index] | |
229 ] | |
230 ]Index[0] | |
231 | |
232 [list]Next[index] | |
233 { | |
234 out <- _Fold[list, ~, newval, worker] | |
235 }{ | |
236 out <- Val[newval] | |
237 } | |
238 } | |
239 | |
240 Fold[worker,start,list:out] | |
241 { | |
242 [list]First | |
243 { | |
244 out <- _Fold[list, ~, start, worker] | |
245 }{ | |
246 out <- start | |
247 } | |
248 } | |
249 | |
1
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
250 _Zip[left,lindex,right,rindex,outlist:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
251 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
252 nlist <- [outlist]Append[ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
253 [[()]Append[ [left]Index[lindex] ]]Append[ [right]Index[rindex] ] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
254 ] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
255 nlindex <- [left]Next[lindex] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
256 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
257 [right]Next[rindex] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
258 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
259 out <- _Zip[left,nlindex,right,~,nlist] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
260 }{ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
261 out <- Val[nlist] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
262 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
263 }{ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
264 out <- Val[nlist] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
265 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
266 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
267 |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
268 Zip[left,right:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
269 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
270 lindex <- [left]First |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
271 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
272 Print[~] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
273 [right]First |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
274 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
275 Print[~] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
276 out <- _Zip[left,lindex,right,~,()] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
277 }{ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
278 out <- () |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
279 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
280 }{ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
281 out <- () |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
282 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
283 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
284 |
0 | 285 _Dict Split[dict,entry,index,keydelim:out] |
286 { | |
287 parts <- [entry]Split[keydelim] | |
288 out <- [dict]Set[[parts]Index[0],[parts]Index[1]] | |
289 } | |
290 | |
291 Dict Split[string,keydelim,entrydelim:out] | |
292 { | |
47
6202b866d72c
Cleaned up constructor names and merged some other changes in to support the Rhope website
Mike Pavone <pavone@retrodev.com>
parents:
30
diff
changeset
|
293 out <- Fold[["_Dict Split"]Set Input[3, keydelim], Dictionary[], [string]Split[entrydelim]] |
0 | 294 } |
295 | |
296 Previous@List[list,index:prev index,not found] | |
297 { | |
298 prev <- [index] - [1] | |
299 If[[prev] < [0]] | |
300 { | |
301 not found <- list | |
302 }{ | |
303 [list]Index[prev] | |
304 { | |
305 prev index <- Val[prev] | |
306 }{ | |
307 prev index, not found <- [list]Previous[prev] | |
308 } | |
309 } | |
310 } | |
311 | |
312 Last@List[list:out,not found] | |
313 { | |
314 out, not found <- [list]Previous[[list]Length] | |
315 } | |
316 | |
317 _Reverse Fold[list,index,start,worker:out] | |
318 { | |
319 newval <- [ | |
320 [worker]Do[ | |
321 [[[()]Append[ start ]]Append[ [list]Index[index] ]]Append[index] | |
322 ] | |
323 ]Index[0] | |
324 | |
325 [list]Previous[index] | |
326 { | |
327 out <- _Reverse Fold[list, ~, newval, worker] | |
328 }{ | |
329 out <- Val[newval] | |
330 } | |
331 } | |
332 | |
333 Reverse Fold[worker,start,list:out] | |
334 { | |
335 [list]Last | |
336 { | |
337 out <- _Reverse Fold[list, ~, start, worker] | |
338 }{ | |
339 out <- list | |
340 } | |
341 } | |
342 | |
343 _Join[list,delim,current,index:out] | |
344 { | |
345 [list]Next[index] | |
346 { | |
347 out <- _Join[list, delim, [[current]Append[delim]]Append[[list]Index[~]], ~] | |
348 }{ | |
349 out <- current | |
350 } | |
351 } | |
352 | |
353 Join[list,delim:out] | |
354 { | |
355 [list]First | |
356 { | |
357 out <- _Join[list, delim, [list]Index[~], ~] | |
358 }{ | |
359 out <- "" | |
360 } | |
361 } | |
362 | |
363 Replace[string,find,replace:replaced] | |
364 { | |
365 replaced <- [[string]Split[find]]Join[replace] | |
366 } | |
367 | |
368 Concatenate[left,right:out] | |
369 { | |
370 out <- Fold[["Append"]<String@Worker, left, right] | |
371 } | |
372 | |
373 Starts With[thing,starts with:out] | |
374 { | |
375 out <- [[thing]Slice[[starts with]Length]] = [starts with] | |
376 } | |
377 | |
378 Ends With[thing,ends with:out] | |
379 { | |
380 ,compare <- [thing]Slice[ [[thing]Length] - [[ends with]Length] ] | |
381 out <- [compare] = [ends with] | |
382 } | |
383 | |
384 As List@String[string:list] | |
385 { | |
386 list <- [()]Append[string] | |
387 } | |
388 | |
389 As List@List[in:out] | |
390 { | |
391 out <- in | |
392 } | |
393 | |
394 _Filter[list,index,worker,destlist:out] | |
395 { | |
396 filter? <- [ | |
397 [worker]Do[ | |
398 [()]Append[ [list]Index[index] ] | |
399 ] | |
400 ]Index[0] | |
401 If[filter?] | |
402 { | |
403 newlist <- [destlist]Append[[list]Index[index]] | |
404 }{ | |
405 newlist <- destlist | |
406 } | |
407 | |
408 [list]Next[index] | |
409 { | |
410 out <- _Filter[list, ~, worker, newlist] | |
411 }{ | |
412 out <- Val[newlist] | |
413 } | |
414 } | |
415 | |
416 Filter[list,worker:out] | |
417 { | |
418 [list]First | |
419 { | |
420 out <- _Filter[list, ~, worker, ()] | |
421 }{ | |
422 out <- list | |
423 } | |
424 } | |
425 | |
426 Pop@List[list:out] | |
427 { | |
428 [list]Last | |
429 { | |
430 out <- [list]Remove[~] | |
431 }{ | |
432 out <- list | |
433 } | |
434 } | |
435 | |
436 Peek@List[list:out,empty] | |
437 { | |
438 [list]Last | |
439 { | |
440 out <- [list]Index[~] | |
441 }{ | |
442 empty <- list | |
443 } | |
444 } | |
445 | |
446 Contains[haystack,needle:out] | |
447 { | |
448 [haystack]Get DString[needle] | |
449 { | |
450 out <- Yes | |
451 } {} {} { | |
452 out <- No | |
453 } | |
454 } | |
455 | |
456 _Find[haystack,needle,index:outindex,notfound] | |
457 { | |
458 If[[[haystack]Index[index]] = [needle]] | |
459 { | |
460 outindex <- index | |
461 }{ | |
462 [haystack]Next[index] | |
463 { | |
464 outindex,notfound <- _Find[haystack,needle,~] | |
465 }{ | |
466 notfound <- needle | |
467 } | |
468 } | |
469 } | |
470 | |
471 Find[haystack,needle:index,not found] | |
472 { | |
473 [haystack]First | |
474 { | |
475 index,not found <- _Find[haystack, needle, ~] | |
476 }{ | |
477 not found <- needle | |
478 } | |
479 | |
480 } | |
481 | |
482 Get Pretty Print Value[value:print,index,print indent,done,out value] | |
483 { | |
484 If[[Type Of[value]] = ["List"]] | |
485 { | |
486 out value <- value | |
487 list <- value | |
488 object <- value | |
489 }{ | |
490 If[[Type Of[value]] = ["Dictionary"]] | |
491 { | |
492 out value <- value | |
493 list <- value | |
494 object <- value | |
495 }{ | |
496 If[[Type Of[value]] = ["String"]] | |
497 { | |
498 out value <- value | |
499 print <- value | |
500 done <- 1 | |
501 }{ | |
502 If[[Type Of[value]] = ["Whole Number"]] | |
503 { | |
504 out value <- value | |
505 print <- value | |
506 done <- 1 | |
507 }{ | |
508 If[[Type Of[value]] = ["Yes No"]] | |
509 { | |
510 out value <- value | |
511 print <- value | |
512 done <- 1 | |
513 }{ | |
514 If[[Type Of[value]] = ["Real Number"]] | |
515 { | |
516 out value <- value | |
517 print <- value | |
518 done <- 1 | |
519 }{ | |
520 object <- value | |
521 fieldlist <- [Blueprint Of[value]]Get Fields | |
522 [fieldlist]First | |
523 { | |
47
6202b866d72c
Cleaned up constructor names and merged some other changes in to support the Rhope website
Mike Pavone <pavone@retrodev.com>
parents:
30
diff
changeset
|
524 list <- _Object to Dict[value, fieldlist, ~, Dictionary[]] |
0 | 525 out value <- Val[list] |
526 }{ | |
527 out value <- value | |
528 done <- 1 | |
529 } | |
530 } | |
531 } | |
532 } | |
533 } | |
534 | |
535 } | |
536 } | |
537 print <- Type Of[object] | |
538 index <- [list]First {} | |
539 { | |
540 print indent <- "{Empty}" | |
541 } | |
542 | |
543 } | |
544 | |
545 Pretty Print Helper[list,tabs,index:out] | |
546 { | |
547 newtabs <- [tabs]Append[" "] | |
548 print,new index,indented,done,value <- Get Pretty Print Value[[list]Index[index]] | |
549 Print[ [[[tabs]Append[index]]Append[": "]]Append[print] ] | |
550 { | |
551 done <- Pretty Print Helper[value,newtabs ,new index] | |
552 done <- Print[[newtabs]Append[indented]] | |
553 | |
554 Val[done] | |
555 { | |
556 [list]Next[index] | |
557 { | |
558 out <- Pretty Print Helper[list, tabs, ~] | |
559 }{ | |
560 out <- 1 | |
561 } | |
562 } | |
563 } | |
564 | |
565 } | |
566 | |
567 Pretty Print[toprint,tabs:out] | |
568 { | |
569 newtabs <- [tabs]Append[" "] | |
570 ,index,indented,,value <- Get Pretty Print Value[toprint] | |
571 { | |
572 Print[[tabs]Append[~]] | |
573 { | |
574 Pretty Print Helper[value,newtabs ,index] | |
575 Print[[newtabs]Append[indented]] | |
576 } | |
577 } | |
578 out <- 1 | |
579 } | |
580 | |
581 _Object to Dict[object,field list,index,dict:out] | |
582 { | |
583 field <- [field list]Index[index] | |
584 [object]Get Field[field] | |
585 { | |
586 nextdict <- [dict]Set[field, ~] | |
587 }{ | |
588 nextdict <- dict | |
589 } | |
590 [field list]Next[index] | |
591 { | |
592 out <- _Object to Dict[object, field list, ~, nextdict] | |
593 }{ | |
594 out <- Val[nextdict] | |
595 } | |
596 } | |
597 | |
598 _Keys[list,val,key:out] | |
599 { | |
600 out <- [list]Append[key] | |
601 } | |
602 | |
603 Keys[container:out] | |
604 { | |
47
6202b866d72c
Cleaned up constructor names and merged some other changes in to support the Rhope website
Mike Pavone <pavone@retrodev.com>
parents:
30
diff
changeset
|
605 out <- Fold["_Keys", (), container] |
0 | 606 } |
607 | |
1
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
608 And[left,right:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
609 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
610 ,out <- If[left] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
611 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
612 out,out <- If[right] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
613 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
614 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
615 |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
616 Or[left,right:out] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
617 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
618 out <- If[left] {} |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
619 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
620 out,out <- If[right] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
621 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
622 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
623 |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
624 After[text,prefix:after,not found] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
625 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
626 If[[text]Starts With[prefix]] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
627 { |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
628 ,after <- [text]Slice[[prefix]Length] |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
629 }{ |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
630 not found <- text |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
631 } |
b3f71490858c
Small fixes and enhancements from main windows box
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
632 } |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
633 |
13 | 634 Blueprint Range |
635 { | |
636 Start | |
637 End | |
638 } | |
639 | |
640 Range[start,end:out] | |
641 { | |
642 out <- [[Build["Range"]]Start <<[start]]End <<[end] | |
643 } | |
644 | |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
645 First@Range[range:out,none] |
13 | 646 { |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
647 If[[[range]Start >>] < [[range]End >>]] |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
648 { |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
649 out <- [range]Start >> |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
650 }{ |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
651 none <- range |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
652 } |
13 | 653 } |
654 | |
655 Next@Range[range,val:out,done] | |
656 { | |
657 next <- [val]+[1] | |
658 If[[next] < [[range]End >>]] | |
659 { | |
660 out <- Val[next] | |
661 }{ | |
662 done <- range | |
663 } | |
664 } | |
665 | |
666 Index@Range[range,index:out,notfound] | |
667 { | |
668 If[[index] < [[range]End >>]] | |
669 { | |
670 If[[index] < [[range]Start >>]] | |
671 { | |
672 notfound <- index | |
673 }{ | |
674 out <- index | |
675 } | |
676 }{ | |
677 notfound <- index | |
678 } | |
679 } | |
680 | |
24
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
681 Tail[list,start:out] |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
682 { |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
683 newlist <- New Like[list] |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
684 [list]Index[start] |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
685 { |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
686 out <- _Fold[list, start, newlist, "Append"] |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
687 }{ |
69
d0ce696786cc
Clean up debug print statements a bit. Fix bug that prevented workers that took no inputs from working. Remove workaround in Array for said bug.
Mike Pavone <pavone@retrodev.com>
parents:
48
diff
changeset
|
688 out <- Val[newlist] |
24
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
689 } |
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
690 } |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
691 |
30
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
692 _Collection =[col1,key1,col2,key2:out] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
693 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
694 ,out <- If[[key1]=[key2]] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
695 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
696 ,out <- If[[[col1]Index[key1]] = [[col2]Index[key2]]] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
697 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
698 nkey1 <- [col1]Next[key1] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
699 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
700 [col2]Next[key2] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
701 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
702 out <- _Collection =[col1,nkey1,col2,~] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
703 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
704 out <- No |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
705 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
706 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
707 [col2]Next[key2] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
708 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
709 out <- No |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
710 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
711 out <- Yes |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
712 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
713 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
714 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
715 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
716 } |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
13
diff
changeset
|
717 |
30
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
718 Collection =[col1,col2:out] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
719 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
720 first1 <- [col1]First |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
721 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
722 [col2]First |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
723 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
724 out <- _Collection =[col1, first1, col2, ~] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
725 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
726 out <- No |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
727 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
728 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
729 [col2]First |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
730 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
731 out <- No |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
732 }{ |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
733 out <- Yes |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
734 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
735 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
736 } |
24
8b2b3f4a2a58
Some fixes to parser_old.rhope
Mike Pavone <pavone@retrodev.com>
parents:
19
diff
changeset
|
737 |
30
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
738 =@List[list1,list2:out] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
739 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
740 ,out <- If[[[list1]Length >>] = [[list2]Length >>]] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
741 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
742 out <- Collection =[list1,list2] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
743 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
744 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
745 |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
746 =@Dictionary[list1,list2:out] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
747 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
748 ,out <- If[[[list1]Length >>] = [[list2]Length >>]] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
749 { |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
750 out <- Collection =[list1,list2] |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
751 } |
914ad38f9b59
Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
752 } |