shen-ruby 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +0 -0
  3. data/Gemfile +6 -0
  4. data/Gemfile.lock +20 -0
  5. data/MIT_LICENSE.txt +26 -0
  6. data/README.md +94 -0
  7. data/bin/shen_test_suite.rb +9 -0
  8. data/bin/srrepl +23 -0
  9. data/lib/kl.rb +7 -0
  10. data/lib/kl/absvector.rb +12 -0
  11. data/lib/kl/compiler.rb +253 -0
  12. data/lib/kl/cons.rb +51 -0
  13. data/lib/kl/empty_list.rb +12 -0
  14. data/lib/kl/environment.rb +123 -0
  15. data/lib/kl/error.rb +4 -0
  16. data/lib/kl/internal_error.rb +7 -0
  17. data/lib/kl/lexer.rb +186 -0
  18. data/lib/kl/primitives/arithmetic.rb +60 -0
  19. data/lib/kl/primitives/assignments.rb +18 -0
  20. data/lib/kl/primitives/booleans.rb +17 -0
  21. data/lib/kl/primitives/error_handling.rb +13 -0
  22. data/lib/kl/primitives/generic_functions.rb +22 -0
  23. data/lib/kl/primitives/lists.rb +21 -0
  24. data/lib/kl/primitives/streams.rb +38 -0
  25. data/lib/kl/primitives/strings.rb +55 -0
  26. data/lib/kl/primitives/symbols.rb +17 -0
  27. data/lib/kl/primitives/time.rb +17 -0
  28. data/lib/kl/primitives/vectors.rb +30 -0
  29. data/lib/kl/reader.rb +40 -0
  30. data/lib/kl/trampoline.rb +14 -0
  31. data/lib/shen_ruby.rb +7 -0
  32. data/lib/shen_ruby/version.rb +3 -0
  33. data/shen-ruby.gemspec +26 -0
  34. data/shen/README.txt +17 -0
  35. data/shen/lib/shen_ruby/shen.rb +124 -0
  36. data/shen/license.txt +34 -0
  37. data/shen/release/benchmarks/N_queens.shen +45 -0
  38. data/shen/release/benchmarks/README.shen +14 -0
  39. data/shen/release/benchmarks/benchmarks.shen +56 -0
  40. data/shen/release/benchmarks/bigprog +2173 -0
  41. data/shen/release/benchmarks/br.shen +13 -0
  42. data/shen/release/benchmarks/einstein.shen +33 -0
  43. data/shen/release/benchmarks/heatwave.gif +0 -0
  44. data/shen/release/benchmarks/interpreter.shen +219 -0
  45. data/shen/release/benchmarks/picture.jpg +0 -0
  46. data/shen/release/benchmarks/plato.jpg +0 -0
  47. data/shen/release/benchmarks/powerset.shen +10 -0
  48. data/shen/release/benchmarks/prime.shen +10 -0
  49. data/shen/release/benchmarks/short.shen +129 -0
  50. data/shen/release/benchmarks/text.txt +68 -0
  51. data/shen/release/k_lambda/core.kl +1002 -0
  52. data/shen/release/k_lambda/declarations.kl +1021 -0
  53. data/shen/release/k_lambda/load.kl +94 -0
  54. data/shen/release/k_lambda/macros.kl +479 -0
  55. data/shen/release/k_lambda/prolog.kl +1309 -0
  56. data/shen/release/k_lambda/reader.kl +1058 -0
  57. data/shen/release/k_lambda/sequent.kl +556 -0
  58. data/shen/release/k_lambda/sys.kl +582 -0
  59. data/shen/release/k_lambda/t-star.kl +3493 -0
  60. data/shen/release/k_lambda/toplevel.kl +223 -0
  61. data/shen/release/k_lambda/track.kl +208 -0
  62. data/shen/release/k_lambda/types.kl +455 -0
  63. data/shen/release/k_lambda/writer.kl +108 -0
  64. data/shen/release/k_lambda/yacc.kl +280 -0
  65. data/shen/release/test_programs/Chap13/problems.txt +26 -0
  66. data/shen/release/test_programs/README.shen +53 -0
  67. data/shen/release/test_programs/TinyLispFunctions.txt +16 -0
  68. data/shen/release/test_programs/TinyTypes.shen +55 -0
  69. data/shen/release/test_programs/binary.shen +24 -0
  70. data/shen/release/test_programs/bubble_version_1.shen +28 -0
  71. data/shen/release/test_programs/bubble_version_2.shen +22 -0
  72. data/shen/release/test_programs/calculator.shen +21 -0
  73. data/shen/release/test_programs/cartprod.shen +23 -0
  74. data/shen/release/test_programs/change.shen +25 -0
  75. data/shen/release/test_programs/classes-defaults.shen +94 -0
  76. data/shen/release/test_programs/classes-inheritance.shen +100 -0
  77. data/shen/release/test_programs/classes-typed.shen +74 -0
  78. data/shen/release/test_programs/classes-untyped.shen +46 -0
  79. data/shen/release/test_programs/depth_.shen +14 -0
  80. data/shen/release/test_programs/einstein.shen +33 -0
  81. data/shen/release/test_programs/fruit_machine.shen +46 -0
  82. data/shen/release/test_programs/interpreter.shen +219 -0
  83. data/shen/release/test_programs/metaprog.shen +85 -0
  84. data/shen/release/test_programs/minim.shen +193 -0
  85. data/shen/release/test_programs/mutual.shen +11 -0
  86. data/shen/release/test_programs/n_queens.shen +45 -0
  87. data/shen/release/test_programs/newton_version_1.shen +33 -0
  88. data/shen/release/test_programs/newton_version_2.shen +24 -0
  89. data/shen/release/test_programs/parse.prl +14 -0
  90. data/shen/release/test_programs/parser.shen +52 -0
  91. data/shen/release/test_programs/powerset.shen +10 -0
  92. data/shen/release/test_programs/prime.shen +10 -0
  93. data/shen/release/test_programs/proof_assistant.shen +81 -0
  94. data/shen/release/test_programs/proplog_version_1.shen +25 -0
  95. data/shen/release/test_programs/proplog_version_2.shen +27 -0
  96. data/shen/release/test_programs/qmachine.shen +67 -0
  97. data/shen/release/test_programs/red-black.shen +55 -0
  98. data/shen/release/test_programs/search.shen +56 -0
  99. data/shen/release/test_programs/semantic_net.shen +44 -0
  100. data/shen/release/test_programs/spreadsheet.shen +35 -0
  101. data/shen/release/test_programs/stack.shen +27 -0
  102. data/shen/release/test_programs/streams.shen +20 -0
  103. data/shen/release/test_programs/strings.shen +59 -0
  104. data/shen/release/test_programs/structures-typed.shen +71 -0
  105. data/shen/release/test_programs/structures-untyped.shen +42 -0
  106. data/shen/release/test_programs/tests.shen +294 -0
  107. data/shen/release/test_programs/types.shen +11 -0
  108. data/shen/release/test_programs/whist.shen +240 -0
  109. data/shen/release/test_programs/yacc.shen +136 -0
  110. data/spec/kl/cons_spec.rb +12 -0
  111. data/spec/kl/environment_spec.rb +306 -0
  112. data/spec/kl/lexer_spec.rb +149 -0
  113. data/spec/kl/primitives/generic_functions_spec.rb +29 -0
  114. data/spec/kl/primitives/symbols_spec.rb +21 -0
  115. data/spec/kl/reader_spec.rb +36 -0
  116. data/spec/spec_helper.rb +2 -0
  117. 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
+