shen-ruby 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/.rspec +0 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +20 -0
- data/MIT_LICENSE.txt +26 -0
- data/README.md +94 -0
- data/bin/shen_test_suite.rb +9 -0
- data/bin/srrepl +23 -0
- data/lib/kl.rb +7 -0
- data/lib/kl/absvector.rb +12 -0
- data/lib/kl/compiler.rb +253 -0
- data/lib/kl/cons.rb +51 -0
- data/lib/kl/empty_list.rb +12 -0
- data/lib/kl/environment.rb +123 -0
- data/lib/kl/error.rb +4 -0
- data/lib/kl/internal_error.rb +7 -0
- data/lib/kl/lexer.rb +186 -0
- data/lib/kl/primitives/arithmetic.rb +60 -0
- data/lib/kl/primitives/assignments.rb +18 -0
- data/lib/kl/primitives/booleans.rb +17 -0
- data/lib/kl/primitives/error_handling.rb +13 -0
- data/lib/kl/primitives/generic_functions.rb +22 -0
- data/lib/kl/primitives/lists.rb +21 -0
- data/lib/kl/primitives/streams.rb +38 -0
- data/lib/kl/primitives/strings.rb +55 -0
- data/lib/kl/primitives/symbols.rb +17 -0
- data/lib/kl/primitives/time.rb +17 -0
- data/lib/kl/primitives/vectors.rb +30 -0
- data/lib/kl/reader.rb +40 -0
- data/lib/kl/trampoline.rb +14 -0
- data/lib/shen_ruby.rb +7 -0
- data/lib/shen_ruby/version.rb +3 -0
- data/shen-ruby.gemspec +26 -0
- data/shen/README.txt +17 -0
- data/shen/lib/shen_ruby/shen.rb +124 -0
- data/shen/license.txt +34 -0
- data/shen/release/benchmarks/N_queens.shen +45 -0
- data/shen/release/benchmarks/README.shen +14 -0
- data/shen/release/benchmarks/benchmarks.shen +56 -0
- data/shen/release/benchmarks/bigprog +2173 -0
- data/shen/release/benchmarks/br.shen +13 -0
- data/shen/release/benchmarks/einstein.shen +33 -0
- data/shen/release/benchmarks/heatwave.gif +0 -0
- data/shen/release/benchmarks/interpreter.shen +219 -0
- data/shen/release/benchmarks/picture.jpg +0 -0
- data/shen/release/benchmarks/plato.jpg +0 -0
- data/shen/release/benchmarks/powerset.shen +10 -0
- data/shen/release/benchmarks/prime.shen +10 -0
- data/shen/release/benchmarks/short.shen +129 -0
- data/shen/release/benchmarks/text.txt +68 -0
- data/shen/release/k_lambda/core.kl +1002 -0
- data/shen/release/k_lambda/declarations.kl +1021 -0
- data/shen/release/k_lambda/load.kl +94 -0
- data/shen/release/k_lambda/macros.kl +479 -0
- data/shen/release/k_lambda/prolog.kl +1309 -0
- data/shen/release/k_lambda/reader.kl +1058 -0
- data/shen/release/k_lambda/sequent.kl +556 -0
- data/shen/release/k_lambda/sys.kl +582 -0
- data/shen/release/k_lambda/t-star.kl +3493 -0
- data/shen/release/k_lambda/toplevel.kl +223 -0
- data/shen/release/k_lambda/track.kl +208 -0
- data/shen/release/k_lambda/types.kl +455 -0
- data/shen/release/k_lambda/writer.kl +108 -0
- data/shen/release/k_lambda/yacc.kl +280 -0
- data/shen/release/test_programs/Chap13/problems.txt +26 -0
- data/shen/release/test_programs/README.shen +53 -0
- data/shen/release/test_programs/TinyLispFunctions.txt +16 -0
- data/shen/release/test_programs/TinyTypes.shen +55 -0
- data/shen/release/test_programs/binary.shen +24 -0
- data/shen/release/test_programs/bubble_version_1.shen +28 -0
- data/shen/release/test_programs/bubble_version_2.shen +22 -0
- data/shen/release/test_programs/calculator.shen +21 -0
- data/shen/release/test_programs/cartprod.shen +23 -0
- data/shen/release/test_programs/change.shen +25 -0
- data/shen/release/test_programs/classes-defaults.shen +94 -0
- data/shen/release/test_programs/classes-inheritance.shen +100 -0
- data/shen/release/test_programs/classes-typed.shen +74 -0
- data/shen/release/test_programs/classes-untyped.shen +46 -0
- data/shen/release/test_programs/depth_.shen +14 -0
- data/shen/release/test_programs/einstein.shen +33 -0
- data/shen/release/test_programs/fruit_machine.shen +46 -0
- data/shen/release/test_programs/interpreter.shen +219 -0
- data/shen/release/test_programs/metaprog.shen +85 -0
- data/shen/release/test_programs/minim.shen +193 -0
- data/shen/release/test_programs/mutual.shen +11 -0
- data/shen/release/test_programs/n_queens.shen +45 -0
- data/shen/release/test_programs/newton_version_1.shen +33 -0
- data/shen/release/test_programs/newton_version_2.shen +24 -0
- data/shen/release/test_programs/parse.prl +14 -0
- data/shen/release/test_programs/parser.shen +52 -0
- data/shen/release/test_programs/powerset.shen +10 -0
- data/shen/release/test_programs/prime.shen +10 -0
- data/shen/release/test_programs/proof_assistant.shen +81 -0
- data/shen/release/test_programs/proplog_version_1.shen +25 -0
- data/shen/release/test_programs/proplog_version_2.shen +27 -0
- data/shen/release/test_programs/qmachine.shen +67 -0
- data/shen/release/test_programs/red-black.shen +55 -0
- data/shen/release/test_programs/search.shen +56 -0
- data/shen/release/test_programs/semantic_net.shen +44 -0
- data/shen/release/test_programs/spreadsheet.shen +35 -0
- data/shen/release/test_programs/stack.shen +27 -0
- data/shen/release/test_programs/streams.shen +20 -0
- data/shen/release/test_programs/strings.shen +59 -0
- data/shen/release/test_programs/structures-typed.shen +71 -0
- data/shen/release/test_programs/structures-untyped.shen +42 -0
- data/shen/release/test_programs/tests.shen +294 -0
- data/shen/release/test_programs/types.shen +11 -0
- data/shen/release/test_programs/whist.shen +240 -0
- data/shen/release/test_programs/yacc.shen +136 -0
- data/spec/kl/cons_spec.rb +12 -0
- data/spec/kl/environment_spec.rb +306 -0
- data/spec/kl/lexer_spec.rb +149 -0
- data/spec/kl/primitives/generic_functions_spec.rb +29 -0
- data/spec/kl/primitives/symbols_spec.rb +21 -0
- data/spec/kl/reader_spec.rb +36 -0
- data/spec/spec_helper.rb +2 -0
- metadata +189 -0
@@ -0,0 +1,1021 @@
|
|
1
|
+
|
2
|
+
" The License
|
3
|
+
|
4
|
+
The user is free to produce commercial applications with the software, to distribute these applications in source or binary form, and to charge monies for them as he sees fit and in concordance with the laws of the land subject to the following license.
|
5
|
+
|
6
|
+
1. The license applies to all the software and all derived software and must appear on such.
|
7
|
+
2. It is illegal to distribute the software without this license attached to it and use of the software implies agreement
|
8
|
+
with the license as such. It is illegal for anyone who is not the copyright holder to tamper with or change the license.
|
9
|
+
3. Neither the names of Lambda Associates or the copyright holder may be used to endorse or promote products built using
|
10
|
+
the software without specific prior written permission from the copyright holder.
|
11
|
+
4. That possession of this license does not confer on the copyright holder any special contractual obligation towards the user. That in no event shall the copyright holder be liable for any direct, indirect, incidental, special, exemplary or consequential damages (including but not limited to procurement of substitute goods or services, loss of use, data, or profits; or business interruption), however caused and on any theory of liability, whether in contract, strict liability or tort (including negligence) arising in any way out of the use of the software, even if advised of the possibility of such damage.
|
12
|
+
5. It is permitted for the user to change the software, for the purpose of improving performance, correcting an error, or porting to a new platform, and distribute the modified version of Shen (hereafter the modified version) provided the resulting program conforms in all respects to the Shen standard and is issued under that title. The user must make it clear with his distribution that he/she is the author of the changes and what these changes are and why.
|
13
|
+
6. Derived versions of this software in whatever form are subject to the same restrictions. In particular it is not permitted to make derived copies of this software which do not conform to the Shen standard or appear under a different title.
|
14
|
+
7. It is permitted to distribute versions of Shen which incorporate libraries, graphics or other facilities which are not part of the Shen standard.
|
15
|
+
|
16
|
+
For an explication of this license see http://www.lambdassociates.org/News/june11/license.htm which explains this license in full."
|
17
|
+
|
18
|
+
(set shen-*installing-kl* false)
|
19
|
+
|
20
|
+
(set shen-*history* ())
|
21
|
+
|
22
|
+
(set shen-*tc* false)
|
23
|
+
|
24
|
+
(set shen-*property-vector* (vector 20000))
|
25
|
+
|
26
|
+
(set shen-*process-counter* 0)
|
27
|
+
|
28
|
+
(set shen-*varcounter* (vector 1000))
|
29
|
+
|
30
|
+
(set shen-*prologvectors* (vector 1000))
|
31
|
+
|
32
|
+
(set shen-*reader-macros* ())
|
33
|
+
|
34
|
+
(set *printer* ())
|
35
|
+
|
36
|
+
(set *home-directory* ())
|
37
|
+
|
38
|
+
(set shen-*gensym* 0)
|
39
|
+
|
40
|
+
(set shen-*tracking* ())
|
41
|
+
|
42
|
+
(set *home-directory* "")
|
43
|
+
|
44
|
+
(set shen-*alphabet*
|
45
|
+
(cons A
|
46
|
+
(cons B
|
47
|
+
(cons C
|
48
|
+
(cons D
|
49
|
+
(cons E
|
50
|
+
(cons F
|
51
|
+
(cons G
|
52
|
+
(cons H
|
53
|
+
(cons I
|
54
|
+
(cons J
|
55
|
+
(cons K
|
56
|
+
(cons L
|
57
|
+
(cons M
|
58
|
+
(cons N
|
59
|
+
(cons O
|
60
|
+
(cons P
|
61
|
+
(cons Q
|
62
|
+
(cons R
|
63
|
+
(cons S
|
64
|
+
(cons T
|
65
|
+
(cons U
|
66
|
+
(cons V
|
67
|
+
(cons W
|
68
|
+
(cons X (cons Y (cons Z ())))))))))))))))))))))))))))
|
69
|
+
|
70
|
+
(set shen-*special*
|
71
|
+
(cons @p
|
72
|
+
(cons @s
|
73
|
+
(cons @v
|
74
|
+
(cons cons
|
75
|
+
(cons lambda
|
76
|
+
(cons let (cons type (cons where (cons set (cons open ())))))))))))
|
77
|
+
|
78
|
+
(set shen-*extraspecial*
|
79
|
+
(cons define (cons shen-process-datatype (cons input+ ()))))
|
80
|
+
|
81
|
+
(set shen-*spy* false)
|
82
|
+
|
83
|
+
(set shen-*datatypes* ())
|
84
|
+
|
85
|
+
(set shen-*alldatatypes* ())
|
86
|
+
|
87
|
+
(set shen-*shen-type-theory-enabled?* true)
|
88
|
+
|
89
|
+
(set shen-*synonyms* ())
|
90
|
+
|
91
|
+
(set shen-*system* ())
|
92
|
+
|
93
|
+
(set shen-*signedfuncs* ())
|
94
|
+
|
95
|
+
(set shen-*maxcomplexity* 128)
|
96
|
+
|
97
|
+
(set shen-*occurs* true)
|
98
|
+
|
99
|
+
(set shen-*maxinferences* 1000000)
|
100
|
+
|
101
|
+
(set *maximum-print-sequence-size* 20)
|
102
|
+
|
103
|
+
(set shen-*catch* 0)
|
104
|
+
|
105
|
+
(set shen-*call* 0)
|
106
|
+
|
107
|
+
(set shen-*infs* 0)
|
108
|
+
|
109
|
+
(set shen-*process-counter* 0)
|
110
|
+
|
111
|
+
(set shen-*catch* 0)
|
112
|
+
|
113
|
+
(defun shen-initialise_arity_table (V1536)
|
114
|
+
(cond ((= () V1536) ())
|
115
|
+
((and (cons? V1536) (cons? (tl V1536)))
|
116
|
+
(let DecArity
|
117
|
+
(put (hd V1536) arity (hd (tl V1536)) (value shen-*property-vector*))
|
118
|
+
(shen-initialise_arity_table (tl (tl V1536)))))
|
119
|
+
(true (shen-sys-error shen-initialise_arity_table))))
|
120
|
+
|
121
|
+
(defun arity (V1537)
|
122
|
+
(trap-error (get V1537 arity (value shen-*property-vector*)) (lambda E -1)))
|
123
|
+
|
124
|
+
(shen-initialise_arity_table
|
125
|
+
(cons adjoin
|
126
|
+
(cons 2
|
127
|
+
(cons and
|
128
|
+
(cons 2
|
129
|
+
(cons append
|
130
|
+
(cons 2
|
131
|
+
(cons arity
|
132
|
+
(cons 1
|
133
|
+
(cons assoc
|
134
|
+
(cons 2
|
135
|
+
(cons boolean?
|
136
|
+
(cons 1
|
137
|
+
(cons cd
|
138
|
+
(cons 1
|
139
|
+
(cons compile
|
140
|
+
(cons 3
|
141
|
+
(cons concat
|
142
|
+
(cons 2
|
143
|
+
(cons cons
|
144
|
+
(cons 2
|
145
|
+
(cons cons?
|
146
|
+
(cons 1
|
147
|
+
(cons cn
|
148
|
+
(cons 2
|
149
|
+
(cons declare
|
150
|
+
(cons 2
|
151
|
+
(cons destroy
|
152
|
+
(cons 1
|
153
|
+
(cons difference
|
154
|
+
(cons 2
|
155
|
+
(cons do
|
156
|
+
(cons 2
|
157
|
+
(cons element?
|
158
|
+
(cons 2
|
159
|
+
(cons empty?
|
160
|
+
(cons 1
|
161
|
+
(cons shen-enable-type-theory
|
162
|
+
(cons 1
|
163
|
+
(cons interror
|
164
|
+
(cons 2
|
165
|
+
(cons eval
|
166
|
+
(cons 1
|
167
|
+
(cons eval-kl
|
168
|
+
(cons 1
|
169
|
+
(cons explode
|
170
|
+
(cons 1
|
171
|
+
(cons external
|
172
|
+
(cons 1
|
173
|
+
(cons fail-if
|
174
|
+
(cons 2
|
175
|
+
(cons fail
|
176
|
+
(cons 0
|
177
|
+
(cons fix
|
178
|
+
(cons 2
|
179
|
+
(cons findall
|
180
|
+
(cons 5
|
181
|
+
(cons freeze
|
182
|
+
(cons 1
|
183
|
+
(cons fst
|
184
|
+
(cons 1
|
185
|
+
(cons gensym
|
186
|
+
(cons 1
|
187
|
+
(cons get
|
188
|
+
(cons 3
|
189
|
+
(cons get-time
|
190
|
+
(cons 1
|
191
|
+
(cons
|
192
|
+
address->
|
193
|
+
(cons 3
|
194
|
+
(cons
|
195
|
+
<-address
|
196
|
+
(cons 2
|
197
|
+
(cons
|
198
|
+
<-vector
|
199
|
+
(cons 2
|
200
|
+
(cons
|
201
|
+
>
|
202
|
+
(cons
|
203
|
+
2
|
204
|
+
(cons
|
205
|
+
>=
|
206
|
+
(cons
|
207
|
+
2
|
208
|
+
(cons
|
209
|
+
=
|
210
|
+
(cons
|
211
|
+
2
|
212
|
+
(cons
|
213
|
+
hd
|
214
|
+
(cons
|
215
|
+
1
|
216
|
+
(cons
|
217
|
+
hdv
|
218
|
+
(cons
|
219
|
+
1
|
220
|
+
(cons
|
221
|
+
hdstr
|
222
|
+
(cons
|
223
|
+
1
|
224
|
+
(cons
|
225
|
+
head
|
226
|
+
(cons
|
227
|
+
1
|
228
|
+
(cons
|
229
|
+
if
|
230
|
+
(cons
|
231
|
+
3
|
232
|
+
(cons
|
233
|
+
integer?
|
234
|
+
(cons
|
235
|
+
1
|
236
|
+
(cons
|
237
|
+
identical
|
238
|
+
(cons
|
239
|
+
4
|
240
|
+
(cons
|
241
|
+
inferences
|
242
|
+
(cons
|
243
|
+
1
|
244
|
+
(cons
|
245
|
+
intoutput
|
246
|
+
(cons
|
247
|
+
2
|
248
|
+
(cons
|
249
|
+
make-string
|
250
|
+
(cons
|
251
|
+
2
|
252
|
+
(cons
|
253
|
+
intersection
|
254
|
+
(cons
|
255
|
+
2
|
256
|
+
(cons
|
257
|
+
length
|
258
|
+
(cons
|
259
|
+
1
|
260
|
+
(cons
|
261
|
+
lineread
|
262
|
+
(cons
|
263
|
+
0
|
264
|
+
(cons
|
265
|
+
load
|
266
|
+
(cons
|
267
|
+
1
|
268
|
+
(cons
|
269
|
+
<
|
270
|
+
(cons
|
271
|
+
2
|
272
|
+
(cons
|
273
|
+
<=
|
274
|
+
(cons
|
275
|
+
2
|
276
|
+
(cons
|
277
|
+
vector
|
278
|
+
(cons
|
279
|
+
1
|
280
|
+
(cons
|
281
|
+
macroexpand
|
282
|
+
(cons
|
283
|
+
1
|
284
|
+
(cons
|
285
|
+
map
|
286
|
+
(cons
|
287
|
+
2
|
288
|
+
(cons
|
289
|
+
mapcan
|
290
|
+
(cons
|
291
|
+
2
|
292
|
+
(cons
|
293
|
+
intmake-string
|
294
|
+
(cons
|
295
|
+
2
|
296
|
+
(cons
|
297
|
+
maxinferences
|
298
|
+
(cons
|
299
|
+
1
|
300
|
+
(cons
|
301
|
+
not
|
302
|
+
(cons
|
303
|
+
1
|
304
|
+
(cons
|
305
|
+
nth
|
306
|
+
(cons
|
307
|
+
2
|
308
|
+
(cons
|
309
|
+
n->string
|
310
|
+
(cons
|
311
|
+
1
|
312
|
+
(cons
|
313
|
+
number?
|
314
|
+
(cons
|
315
|
+
1
|
316
|
+
(cons
|
317
|
+
output
|
318
|
+
(cons
|
319
|
+
2
|
320
|
+
(cons
|
321
|
+
occurs-check
|
322
|
+
(cons
|
323
|
+
1
|
324
|
+
(cons
|
325
|
+
occurrences
|
326
|
+
(cons
|
327
|
+
2
|
328
|
+
(cons
|
329
|
+
occurs-check
|
330
|
+
(cons
|
331
|
+
1
|
332
|
+
(cons
|
333
|
+
or
|
334
|
+
(cons
|
335
|
+
2
|
336
|
+
(cons
|
337
|
+
package
|
338
|
+
(cons
|
339
|
+
3
|
340
|
+
(cons
|
341
|
+
pos
|
342
|
+
(cons
|
343
|
+
2
|
344
|
+
(cons
|
345
|
+
print
|
346
|
+
(cons
|
347
|
+
1
|
348
|
+
(cons
|
349
|
+
profile
|
350
|
+
(cons
|
351
|
+
1
|
352
|
+
(cons
|
353
|
+
profile-results
|
354
|
+
(cons
|
355
|
+
1
|
356
|
+
(cons
|
357
|
+
ps
|
358
|
+
(cons
|
359
|
+
1
|
360
|
+
(cons
|
361
|
+
preclude
|
362
|
+
(cons
|
363
|
+
1
|
364
|
+
(cons
|
365
|
+
preclude-all-but
|
366
|
+
(cons
|
367
|
+
1
|
368
|
+
(cons
|
369
|
+
protect
|
370
|
+
(cons
|
371
|
+
1
|
372
|
+
(cons
|
373
|
+
address->
|
374
|
+
(cons
|
375
|
+
3
|
376
|
+
(cons
|
377
|
+
put
|
378
|
+
(cons
|
379
|
+
4
|
380
|
+
(cons
|
381
|
+
shen-reassemble
|
382
|
+
(cons
|
383
|
+
2
|
384
|
+
(cons
|
385
|
+
read-file-as-string
|
386
|
+
(cons
|
387
|
+
1
|
388
|
+
(cons
|
389
|
+
read-file
|
390
|
+
(cons
|
391
|
+
1
|
392
|
+
(cons
|
393
|
+
read-byte
|
394
|
+
(cons
|
395
|
+
1
|
396
|
+
(cons
|
397
|
+
remove
|
398
|
+
(cons
|
399
|
+
2
|
400
|
+
(cons
|
401
|
+
reverse
|
402
|
+
(cons
|
403
|
+
1
|
404
|
+
(cons
|
405
|
+
set
|
406
|
+
(cons
|
407
|
+
2
|
408
|
+
(cons
|
409
|
+
simple-error
|
410
|
+
(cons
|
411
|
+
1
|
412
|
+
(cons
|
413
|
+
snd
|
414
|
+
(cons
|
415
|
+
1
|
416
|
+
(cons
|
417
|
+
specialise
|
418
|
+
(cons
|
419
|
+
1
|
420
|
+
(cons
|
421
|
+
spy
|
422
|
+
(cons
|
423
|
+
1
|
424
|
+
(cons
|
425
|
+
step
|
426
|
+
(cons
|
427
|
+
1
|
428
|
+
(cons
|
429
|
+
stinput
|
430
|
+
(cons
|
431
|
+
1
|
432
|
+
(cons
|
433
|
+
shen-stoutput
|
434
|
+
(cons
|
435
|
+
1
|
436
|
+
(cons
|
437
|
+
string->n
|
438
|
+
(cons
|
439
|
+
1
|
440
|
+
(cons
|
441
|
+
string?
|
442
|
+
(cons
|
443
|
+
1
|
444
|
+
(cons
|
445
|
+
strong-warning
|
446
|
+
(cons
|
447
|
+
1
|
448
|
+
(cons
|
449
|
+
subst
|
450
|
+
(cons
|
451
|
+
3
|
452
|
+
(cons
|
453
|
+
symbol?
|
454
|
+
(cons
|
455
|
+
1
|
456
|
+
(cons
|
457
|
+
tail
|
458
|
+
(cons
|
459
|
+
1
|
460
|
+
(cons
|
461
|
+
tl
|
462
|
+
(cons
|
463
|
+
1
|
464
|
+
(cons
|
465
|
+
tc
|
466
|
+
(cons
|
467
|
+
1
|
468
|
+
(cons
|
469
|
+
tc?
|
470
|
+
(cons
|
471
|
+
1
|
472
|
+
(cons
|
473
|
+
thaw
|
474
|
+
(cons
|
475
|
+
1
|
476
|
+
(cons
|
477
|
+
track
|
478
|
+
(cons
|
479
|
+
1
|
480
|
+
(cons
|
481
|
+
trap-error
|
482
|
+
(cons
|
483
|
+
2
|
484
|
+
(cons
|
485
|
+
tuple?
|
486
|
+
(cons
|
487
|
+
1
|
488
|
+
(cons
|
489
|
+
type
|
490
|
+
(cons
|
491
|
+
1
|
492
|
+
(cons
|
493
|
+
return
|
494
|
+
(cons
|
495
|
+
3
|
496
|
+
(cons
|
497
|
+
shen-undefmacro
|
498
|
+
(cons
|
499
|
+
1
|
500
|
+
(cons
|
501
|
+
unprofile
|
502
|
+
(cons
|
503
|
+
1
|
504
|
+
(cons
|
505
|
+
unify
|
506
|
+
(cons
|
507
|
+
4
|
508
|
+
(cons
|
509
|
+
unify!
|
510
|
+
(cons
|
511
|
+
4
|
512
|
+
(cons
|
513
|
+
union
|
514
|
+
(cons
|
515
|
+
2
|
516
|
+
(cons
|
517
|
+
untrack
|
518
|
+
(cons
|
519
|
+
1
|
520
|
+
(cons
|
521
|
+
unspecialise
|
522
|
+
(cons
|
523
|
+
1
|
524
|
+
(cons
|
525
|
+
vector
|
526
|
+
(cons
|
527
|
+
1
|
528
|
+
(cons
|
529
|
+
vector->
|
530
|
+
(cons
|
531
|
+
3
|
532
|
+
(cons
|
533
|
+
value
|
534
|
+
(cons
|
535
|
+
1
|
536
|
+
(cons
|
537
|
+
variable?
|
538
|
+
(cons
|
539
|
+
1
|
540
|
+
(cons
|
541
|
+
version
|
542
|
+
(cons
|
543
|
+
1
|
544
|
+
(cons
|
545
|
+
warn
|
546
|
+
(cons
|
547
|
+
1
|
548
|
+
(cons
|
549
|
+
write-to-file
|
550
|
+
(cons
|
551
|
+
2
|
552
|
+
(cons
|
553
|
+
y-or-n?
|
554
|
+
(cons
|
555
|
+
1
|
556
|
+
(cons
|
557
|
+
+
|
558
|
+
(cons
|
559
|
+
2
|
560
|
+
(cons
|
561
|
+
*
|
562
|
+
(cons
|
563
|
+
2
|
564
|
+
(cons
|
565
|
+
/
|
566
|
+
(cons
|
567
|
+
2
|
568
|
+
(cons
|
569
|
+
-
|
570
|
+
(cons
|
571
|
+
2
|
572
|
+
(cons
|
573
|
+
==
|
574
|
+
(cons
|
575
|
+
2
|
576
|
+
(cons
|
577
|
+
shen-<1>
|
578
|
+
(cons
|
579
|
+
1
|
580
|
+
(cons
|
581
|
+
<e>
|
582
|
+
(cons
|
583
|
+
1
|
584
|
+
(cons
|
585
|
+
@p
|
586
|
+
(cons
|
587
|
+
2
|
588
|
+
(cons
|
589
|
+
@v
|
590
|
+
(cons
|
591
|
+
2
|
592
|
+
(cons
|
593
|
+
@s
|
594
|
+
(cons
|
595
|
+
2
|
596
|
+
(cons
|
597
|
+
preclude
|
598
|
+
(cons
|
599
|
+
1
|
600
|
+
(cons
|
601
|
+
include
|
602
|
+
(cons
|
603
|
+
1
|
604
|
+
(cons
|
605
|
+
preclude-all-but
|
606
|
+
(cons
|
607
|
+
1
|
608
|
+
(cons
|
609
|
+
include-all-but
|
610
|
+
(cons
|
611
|
+
1
|
612
|
+
(cons
|
613
|
+
where
|
614
|
+
(cons
|
615
|
+
2
|
616
|
+
())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
|
617
|
+
|
618
|
+
(defun systemf (V1538)
|
619
|
+
(set shen-*system* (adjoin V1538 (value shen-*system*))))
|
620
|
+
|
621
|
+
(defun adjoin (V1539 V1540)
|
622
|
+
(if (element? V1539 V1540) V1540 (cons V1539 V1540)))
|
623
|
+
|
624
|
+
(map (lambda X (do (systemf X) X))
|
625
|
+
(cons !
|
626
|
+
(cons }
|
627
|
+
(cons {
|
628
|
+
(cons -->
|
629
|
+
(cons <--
|
630
|
+
(cons &&
|
631
|
+
(cons :
|
632
|
+
(cons ;
|
633
|
+
(cons :-
|
634
|
+
(cons :=
|
635
|
+
(cons (intern "_")
|
636
|
+
(cons <!>
|
637
|
+
(cons -*-
|
638
|
+
(cons *language*
|
639
|
+
(cons *implementation*
|
640
|
+
(cons *stinput*
|
641
|
+
(cons *home-directory*
|
642
|
+
(cons *version*
|
643
|
+
(cons *maximum-print-sequence-size*
|
644
|
+
(cons *printer*
|
645
|
+
(cons *macros*
|
646
|
+
(cons *os*
|
647
|
+
(cons *release*
|
648
|
+
(cons @v
|
649
|
+
(cons @p
|
650
|
+
(cons @s
|
651
|
+
(cons <-
|
652
|
+
(cons ->
|
653
|
+
(cons <e>
|
654
|
+
(cons ==
|
655
|
+
(cons =
|
656
|
+
(cons >=
|
657
|
+
(cons >
|
658
|
+
(cons /.
|
659
|
+
(cons =!
|
660
|
+
(cons $
|
661
|
+
(cons -
|
662
|
+
(cons /
|
663
|
+
(cons *
|
664
|
+
(cons +
|
665
|
+
(cons <=
|
666
|
+
(cons <
|
667
|
+
(cons >>
|
668
|
+
(cons <>
|
669
|
+
(cons y-or-n?
|
670
|
+
(cons write-to-file
|
671
|
+
(cons where
|
672
|
+
(cons when
|
673
|
+
(cons warn
|
674
|
+
(cons version
|
675
|
+
(cons verified
|
676
|
+
(cons variable?
|
677
|
+
(cons value
|
678
|
+
(cons vector->
|
679
|
+
(cons <-vector
|
680
|
+
(cons vector
|
681
|
+
(cons vector?
|
682
|
+
(cons unspecialise
|
683
|
+
(cons untrack
|
684
|
+
(cons unix
|
685
|
+
(cons union
|
686
|
+
(cons unify
|
687
|
+
(cons unify!
|
688
|
+
(cons unprofile
|
689
|
+
(cons
|
690
|
+
shen-undefmacro
|
691
|
+
(cons return
|
692
|
+
(cons type
|
693
|
+
(cons
|
694
|
+
tuple?
|
695
|
+
(cons true
|
696
|
+
(cons
|
697
|
+
trap-error
|
698
|
+
(cons
|
699
|
+
track
|
700
|
+
(cons
|
701
|
+
time
|
702
|
+
(cons
|
703
|
+
thaw
|
704
|
+
(cons
|
705
|
+
tc?
|
706
|
+
(cons
|
707
|
+
tc
|
708
|
+
(cons
|
709
|
+
tl
|
710
|
+
(cons
|
711
|
+
tlstr
|
712
|
+
(cons
|
713
|
+
tlv
|
714
|
+
(cons
|
715
|
+
tail
|
716
|
+
(cons
|
717
|
+
systemf
|
718
|
+
(cons
|
719
|
+
synonyms
|
720
|
+
(cons
|
721
|
+
symbol
|
722
|
+
(cons
|
723
|
+
symbol?
|
724
|
+
(cons
|
725
|
+
subst
|
726
|
+
(cons
|
727
|
+
string?
|
728
|
+
(cons
|
729
|
+
string->n
|
730
|
+
(cons
|
731
|
+
stream
|
732
|
+
(cons
|
733
|
+
string
|
734
|
+
(cons
|
735
|
+
stinput
|
736
|
+
(cons
|
737
|
+
shen-stoutput
|
738
|
+
(cons
|
739
|
+
step
|
740
|
+
(cons
|
741
|
+
spy
|
742
|
+
(cons
|
743
|
+
specialise
|
744
|
+
(cons
|
745
|
+
snd
|
746
|
+
(cons
|
747
|
+
simple-error
|
748
|
+
(cons
|
749
|
+
set
|
750
|
+
(cons
|
751
|
+
save
|
752
|
+
(cons
|
753
|
+
str
|
754
|
+
(cons
|
755
|
+
run
|
756
|
+
(cons
|
757
|
+
reverse
|
758
|
+
(cons
|
759
|
+
remove
|
760
|
+
(cons
|
761
|
+
read
|
762
|
+
(cons
|
763
|
+
read-file
|
764
|
+
(cons
|
765
|
+
read-file-as-bytelist
|
766
|
+
(cons
|
767
|
+
read-file-as-string
|
768
|
+
(cons
|
769
|
+
read-byte
|
770
|
+
(cons
|
771
|
+
quit
|
772
|
+
(cons
|
773
|
+
put
|
774
|
+
(cons
|
775
|
+
preclude
|
776
|
+
(cons
|
777
|
+
preclude-all-but
|
778
|
+
(cons
|
779
|
+
ps
|
780
|
+
(cons
|
781
|
+
prolog?
|
782
|
+
(cons
|
783
|
+
protect
|
784
|
+
(cons
|
785
|
+
profile-results
|
786
|
+
(cons
|
787
|
+
profile
|
788
|
+
(cons
|
789
|
+
print
|
790
|
+
(cons
|
791
|
+
pr
|
792
|
+
(cons
|
793
|
+
pos
|
794
|
+
(cons
|
795
|
+
package
|
796
|
+
(cons
|
797
|
+
output
|
798
|
+
(cons
|
799
|
+
out
|
800
|
+
(cons
|
801
|
+
or
|
802
|
+
(cons
|
803
|
+
open
|
804
|
+
(cons
|
805
|
+
occurrences
|
806
|
+
(cons
|
807
|
+
occurs-check
|
808
|
+
(cons
|
809
|
+
n->string
|
810
|
+
(cons
|
811
|
+
number?
|
812
|
+
(cons
|
813
|
+
number
|
814
|
+
(cons
|
815
|
+
null
|
816
|
+
(cons
|
817
|
+
nth
|
818
|
+
(cons
|
819
|
+
not
|
820
|
+
(cons
|
821
|
+
nl
|
822
|
+
(cons
|
823
|
+
mode
|
824
|
+
(cons
|
825
|
+
macro
|
826
|
+
(cons
|
827
|
+
macroexpand
|
828
|
+
(cons
|
829
|
+
maxinferences
|
830
|
+
(cons
|
831
|
+
mapcan
|
832
|
+
(cons
|
833
|
+
map
|
834
|
+
(cons
|
835
|
+
make-string
|
836
|
+
(cons
|
837
|
+
load
|
838
|
+
(cons
|
839
|
+
loaded
|
840
|
+
(cons
|
841
|
+
list
|
842
|
+
(cons
|
843
|
+
lineread
|
844
|
+
(cons
|
845
|
+
limit
|
846
|
+
(cons
|
847
|
+
length
|
848
|
+
(cons
|
849
|
+
let
|
850
|
+
(cons
|
851
|
+
lazy
|
852
|
+
(cons
|
853
|
+
lambda
|
854
|
+
(cons
|
855
|
+
is
|
856
|
+
(cons
|
857
|
+
intersection
|
858
|
+
(cons
|
859
|
+
inferences
|
860
|
+
(cons
|
861
|
+
intern
|
862
|
+
(cons
|
863
|
+
integer?
|
864
|
+
(cons
|
865
|
+
input
|
866
|
+
(cons
|
867
|
+
input+
|
868
|
+
(cons
|
869
|
+
include
|
870
|
+
(cons
|
871
|
+
include-all-but
|
872
|
+
(cons
|
873
|
+
in
|
874
|
+
(cons
|
875
|
+
if
|
876
|
+
(cons
|
877
|
+
identical
|
878
|
+
(cons
|
879
|
+
head
|
880
|
+
(cons
|
881
|
+
hd
|
882
|
+
(cons
|
883
|
+
hdv
|
884
|
+
(cons
|
885
|
+
hdstr
|
886
|
+
(cons
|
887
|
+
hash
|
888
|
+
(cons
|
889
|
+
get
|
890
|
+
(cons
|
891
|
+
get-time
|
892
|
+
(cons
|
893
|
+
gensym
|
894
|
+
(cons
|
895
|
+
function
|
896
|
+
(cons
|
897
|
+
fst
|
898
|
+
(cons
|
899
|
+
freeze
|
900
|
+
(cons
|
901
|
+
format
|
902
|
+
(cons
|
903
|
+
fix
|
904
|
+
(cons
|
905
|
+
file
|
906
|
+
(cons
|
907
|
+
fail
|
908
|
+
(cons
|
909
|
+
fail-if
|
910
|
+
(cons
|
911
|
+
fwhen
|
912
|
+
(cons
|
913
|
+
findall
|
914
|
+
(cons
|
915
|
+
false
|
916
|
+
(cons
|
917
|
+
shen-enable-type-theory
|
918
|
+
(cons
|
919
|
+
explode
|
920
|
+
(cons
|
921
|
+
external
|
922
|
+
(cons
|
923
|
+
exception
|
924
|
+
(cons
|
925
|
+
eval-kl
|
926
|
+
(cons
|
927
|
+
eval
|
928
|
+
(cons
|
929
|
+
error-to-string
|
930
|
+
(cons
|
931
|
+
error
|
932
|
+
(cons
|
933
|
+
empty?
|
934
|
+
(cons
|
935
|
+
element?
|
936
|
+
(cons
|
937
|
+
do
|
938
|
+
(cons
|
939
|
+
difference
|
940
|
+
(cons
|
941
|
+
destroy
|
942
|
+
(cons
|
943
|
+
defun
|
944
|
+
(cons
|
945
|
+
define
|
946
|
+
(cons
|
947
|
+
defmacro
|
948
|
+
(cons
|
949
|
+
defcc
|
950
|
+
(cons
|
951
|
+
defprolog
|
952
|
+
(cons
|
953
|
+
declare
|
954
|
+
(cons
|
955
|
+
datatype
|
956
|
+
(cons
|
957
|
+
cut
|
958
|
+
(cons
|
959
|
+
cn
|
960
|
+
(cons
|
961
|
+
cons?
|
962
|
+
(cons
|
963
|
+
cons
|
964
|
+
(cons
|
965
|
+
cond
|
966
|
+
(cons
|
967
|
+
concat
|
968
|
+
(cons
|
969
|
+
compile
|
970
|
+
(cons
|
971
|
+
cd
|
972
|
+
(cons
|
973
|
+
cases
|
974
|
+
(cons
|
975
|
+
call
|
976
|
+
(cons
|
977
|
+
close
|
978
|
+
(cons
|
979
|
+
bind
|
980
|
+
(cons
|
981
|
+
bound?
|
982
|
+
(cons
|
983
|
+
boolean?
|
984
|
+
(cons
|
985
|
+
boolean
|
986
|
+
(cons
|
987
|
+
bar!
|
988
|
+
(cons
|
989
|
+
assoc
|
990
|
+
(cons
|
991
|
+
arity
|
992
|
+
(cons
|
993
|
+
append
|
994
|
+
(cons
|
995
|
+
and
|
996
|
+
(cons
|
997
|
+
adjoin
|
998
|
+
(cons
|
999
|
+
<-address
|
1000
|
+
(cons
|
1001
|
+
address->
|
1002
|
+
(cons
|
1003
|
+
absvector?
|
1004
|
+
(cons
|
1005
|
+
absvector
|
1006
|
+
(cons
|
1007
|
+
abort
|
1008
|
+
(cons
|
1009
|
+
intmake-string
|
1010
|
+
(cons
|
1011
|
+
intoutput
|
1012
|
+
(cons
|
1013
|
+
interror
|
1014
|
+
())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
|
1015
|
+
|
1016
|
+
(defun specialise (V1541)
|
1017
|
+
(do (set shen-*special* (cons V1541 (value shen-*special*))) V1541))
|
1018
|
+
|
1019
|
+
(defun unspecialise (V1542)
|
1020
|
+
(do (set shen-*special* (remove V1542 (value shen-*special*))) V1542))
|
1021
|
+
|