shen-ruby 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -47,38 +47,38 @@
47
47
  * explains this license in full. *
48
48
  * *
49
49
  *****************************************************************************************
50
- "(defun load (V827) (let Load (let Start (get-time run) (let Result (shen.load-help (value shen.*tc*) (read-file V827)) (let Finish (get-time run) (let Time (- Finish Start) (let Message (shen.prhush (cn "
50
+ "(defun load (V839) (let Load (let Start (get-time run) (let Result (shen.load-help (value shen.*tc*) (read-file V839)) (let Finish (get-time run) (let Time (- Finish Start) (let Message (shen.prhush (cn "
51
51
  run time: " (cn (str Time) " secs
52
52
  ")) (stoutput)) Result))))) (let Infs (if (value shen.*tc*) (shen.prhush (cn "
53
53
  typechecked in " (shen.app (inferences) " inferences
54
54
  " shen.a)) (stoutput)) shen.skip) loaded)))
55
55
 
56
- (defun shen.load-help (V832 V833) (cond ((= false V832) (map (lambda X (shen.prhush (shen.app (shen.eval-without-macros X) "
57
- " shen.s) (stoutput))) V833)) (true (let RemoveSynonyms (mapcan shen.remove-synonyms V833) (let Table (mapcan shen.typetable RemoveSynonyms) (let Assume (map shen.assumetype Table) (trap-error (map shen.typecheck-and-load RemoveSynonyms) (lambda E (shen.unwind-types E Table)))))))))
56
+ (defun shen.load-help (V844 V845) (cond ((= false V844) (map (lambda X (shen.prhush (shen.app (shen.eval-without-macros X) "
57
+ " shen.s) (stoutput))) V845)) (true (let RemoveSynonyms (mapcan (lambda X834 (shen.remove-synonyms X834)) V845) (let Table (mapcan (lambda X835 (shen.typetable X835)) RemoveSynonyms) (let Assume (map (lambda X836 (shen.assumetype X836)) Table) (trap-error (map (lambda X837 (shen.typecheck-and-load X837)) RemoveSynonyms) (lambda E (shen.unwind-types E Table)))))))))
58
58
 
59
- (defun shen.remove-synonyms (V834) (cond ((and (cons? V834) (= shen.synonyms-help (hd V834))) (do (eval V834) ())) (true (cons V834 ()))))
59
+ (defun shen.remove-synonyms (V846) (cond ((and (cons? V846) (= shen.synonyms-help (hd V846))) (do (eval V846) ())) (true (cons V846 ()))))
60
60
 
61
- (defun shen.typecheck-and-load (V835) (do (nl 1) (shen.typecheck-and-evaluate V835 (gensym A))))
61
+ (defun shen.typecheck-and-load (V847) (do (nl 1) (shen.typecheck-and-evaluate V847 (gensym A))))
62
62
 
63
- (defun shen.typetable (V844) (cond ((and (cons? V844) (and (= define (hd V844)) (cons? (tl V844)))) (let Sig (compile shen.<sig+rest> (tl (tl V844)) ()) (if (= Sig (fail)) (simple-error (shen.app (hd (tl V844)) " lacks a proper signature.
64
- " shen.a)) (cons (cons (hd (tl V844)) Sig) ())))) ((and (cons? V844) (and (= defcc (hd V844)) (and (cons? (tl V844)) (and (cons? (tl (tl V844))) (and (= { (hd (tl (tl V844)))) (and (cons? (tl (tl (tl V844)))) (and (cons? (hd (tl (tl (tl V844))))) (and (= list (hd (hd (tl (tl (tl V844)))))) (and (cons? (tl (hd (tl (tl (tl V844)))))) (and (= () (tl (tl (hd (tl (tl (tl V844))))))) (and (cons? (tl (tl (tl (tl V844))))) (and (= ==> (hd (tl (tl (tl (tl V844)))))) (and (cons? (tl (tl (tl (tl (tl V844)))))) (and (cons? (tl (tl (tl (tl (tl (tl V844))))))) (= } (hd (tl (tl (tl (tl (tl (tl V844)))))))))))))))))))))) (cons (cons (hd (tl V844)) (cons (hd (tl (tl (tl V844)))) (cons ==> (cons (hd (tl (tl (tl (tl (tl V844)))))) ())))) ())) ((and (cons? V844) (and (= defcc (hd V844)) (cons? (tl V844)))) (simple-error (shen.app (hd (tl V844)) " lacks a proper signature.
63
+ (defun shen.typetable (V856) (cond ((and (cons? V856) (and (= define (hd V856)) (cons? (tl V856)))) (let Sig (compile (lambda X838 (shen.<sig+rest> X838)) (tl (tl V856)) ()) (if (= Sig (fail)) (simple-error (shen.app (hd (tl V856)) " lacks a proper signature.
64
+ " shen.a)) (cons (cons (hd (tl V856)) Sig) ())))) ((and (cons? V856) (and (= defcc (hd V856)) (and (cons? (tl V856)) (and (cons? (tl (tl V856))) (and (= { (hd (tl (tl V856)))) (and (cons? (tl (tl (tl V856)))) (and (cons? (hd (tl (tl (tl V856))))) (and (= list (hd (hd (tl (tl (tl V856)))))) (and (cons? (tl (hd (tl (tl (tl V856)))))) (and (= () (tl (tl (hd (tl (tl (tl V856))))))) (and (cons? (tl (tl (tl (tl V856))))) (and (= ==> (hd (tl (tl (tl (tl V856)))))) (and (cons? (tl (tl (tl (tl (tl V856)))))) (and (cons? (tl (tl (tl (tl (tl (tl V856))))))) (= } (hd (tl (tl (tl (tl (tl (tl V856)))))))))))))))))))))) (cons (cons (hd (tl V856)) (cons (hd (tl (tl (tl V856)))) (cons ==> (cons (hd (tl (tl (tl (tl (tl V856)))))) ())))) ())) ((and (cons? V856) (and (= defcc (hd V856)) (cons? (tl V856)))) (simple-error (shen.app (hd (tl V856)) " lacks a proper signature.
65
65
  " shen.a))) (true ())))
66
66
 
67
- (defun shen.assumetype (V845) (cond ((cons? V845) (declare (hd V845) (tl V845))) (true (shen.sys-error shen.assumetype))))
67
+ (defun shen.assumetype (V857) (cond ((cons? V857) (declare (hd V857) (tl V857))) (true (shen.sys-error shen.assumetype))))
68
68
 
69
- (defun shen.unwind-types (V850 V851) (cond ((= () V851) (simple-error (error-to-string V850))) ((and (cons? V851) (cons? (hd V851))) (do (shen.remtype (hd (hd V851))) (shen.unwind-types V850 (tl V851)))) (true (shen.sys-error shen.unwind-types))))
69
+ (defun shen.unwind-types (V862 V863) (cond ((= () V863) (simple-error (error-to-string V862))) ((and (cons? V863) (cons? (hd V863))) (do (shen.remtype (hd (hd V863))) (shen.unwind-types V862 (tl V863)))) (true (shen.sys-error shen.unwind-types))))
70
70
 
71
- (defun shen.remtype (V852) (set shen.*signedfuncs* (shen.removetype V852 (value shen.*signedfuncs*))))
71
+ (defun shen.remtype (V864) (set shen.*signedfuncs* (shen.removetype V864 (value shen.*signedfuncs*))))
72
72
 
73
- (defun shen.removetype (V857 V858) (cond ((= () V858) ()) ((and (cons? V858) (and (cons? (hd V858)) (= (hd (hd V858)) V857))) (shen.removetype (hd (hd V858)) (tl V858))) ((cons? V858) (cons (hd V858) (shen.removetype V857 (tl V858)))) (true (shen.sys-error shen.removetype))))
73
+ (defun shen.removetype (V869 V870) (cond ((= () V870) ()) ((and (cons? V870) (and (cons? (hd V870)) (= (hd (hd V870)) V869))) (shen.removetype (hd (hd V870)) (tl V870))) ((cons? V870) (cons (hd V870) (shen.removetype V869 (tl V870)))) (true (shen.sys-error shen.removetype))))
74
74
 
75
- (defun shen.<sig+rest> (V864) (let Result (let Parse_shen.<signature> (shen.<signature> V864) (if (not (= (fail) Parse_shen.<signature>)) (let Parse_<!> (<!> Parse_shen.<signature>) (if (not (= (fail) Parse_<!>)) (shen.pair (hd Parse_<!>) (shen.hdtl Parse_shen.<signature>)) (fail))) (fail))) (if (= Result (fail)) (fail) Result)))
75
+ (defun shen.<sig+rest> (V876) (let Result (let Parse_shen.<signature> (shen.<signature> V876) (if (not (= (fail) Parse_shen.<signature>)) (let Parse_<!> (<!> Parse_shen.<signature>) (if (not (= (fail) Parse_<!>)) (shen.pair (hd Parse_<!>) (shen.hdtl Parse_shen.<signature>)) (fail))) (fail))) (if (= Result (fail)) (fail) Result)))
76
76
 
77
- (defun write-to-file (V865 V866) (let Stream (open V865 out) (let String (if (string? V866) (shen.app V866 "
77
+ (defun write-to-file (V877 V878) (let Stream (open V877 out) (let String (if (string? V878) (shen.app V878 "
78
78
 
79
- " shen.a) (shen.app V866 "
79
+ " shen.a) (shen.app V878 "
80
80
 
81
- " shen.s)) (let Write (pr String Stream) (let Close (close Stream) V866)))))
81
+ " shen.s)) (let Write (pr String Stream) (let Close (close Stream) V878)))))
82
82
 
83
83
 
84
84
 
@@ -47,33 +47,33 @@
47
47
  * explains this license in full. *
48
48
  * *
49
49
  *****************************************************************************************
50
- "(defun macroexpand (V868) (let Y (shen.compose (value *macros*) V868) (if (= V868 Y) V868 (shen.walk (lambda V867 (macroexpand V867)) Y))))
50
+ "(defun macroexpand (V882) (let Y (shen.compose (value *macros*) V882) (if (= V882 Y) V882 (shen.walk (lambda X879 (macroexpand X879)) Y))))
51
51
 
52
52
  (set *macros* (cons shen.timer-macro (cons shen.cases-macro (cons shen.abs-macro (cons shen.put/get-macro (cons shen.compile-macro (cons shen.datatype-macro (cons shen.let-macro (cons shen.assoc-macro (cons shen.make-string-macro (cons shen.output-macro (cons shen.input-macro (cons shen.error-macro (cons shen.prolog-macro (cons shen.synonyms-macro (cons shen.nl-macro (cons shen.@s-macro (cons shen.defprolog-macro (cons shen.function-macro ())))))))))))))))))))
53
53
 
54
- (defun shen.error-macro (V869) (cond ((and (cons? V869) (and (= error (hd V869)) (cons? (tl V869)))) (cons simple-error (cons (shen.mkstr (hd (tl V869)) (tl (tl V869))) ()))) (true V869)))
54
+ (defun shen.error-macro (V883) (cond ((and (cons? V883) (and (= error (hd V883)) (cons? (tl V883)))) (cons simple-error (cons (shen.mkstr (hd (tl V883)) (tl (tl V883))) ()))) (true V883)))
55
55
 
56
- (defun shen.output-macro (V870) (cond ((and (cons? V870) (and (= output (hd V870)) (cons? (tl V870)))) (cons shen.prhush (cons (shen.mkstr (hd (tl V870)) (tl (tl V870))) (cons (cons stoutput ()) ())))) ((and (cons? V870) (and (= pr (hd V870)) (and (cons? (tl V870)) (= () (tl (tl V870)))))) (cons pr (cons (hd (tl V870)) (cons (cons stoutput ()) ())))) (true V870)))
56
+ (defun shen.output-macro (V884) (cond ((and (cons? V884) (and (= output (hd V884)) (cons? (tl V884)))) (cons shen.prhush (cons (shen.mkstr (hd (tl V884)) (tl (tl V884))) (cons (cons stoutput ()) ())))) ((and (cons? V884) (and (= pr (hd V884)) (and (cons? (tl V884)) (= () (tl (tl V884)))))) (cons pr (cons (hd (tl V884)) (cons (cons stoutput ()) ())))) (true V884)))
57
57
 
58
- (defun shen.make-string-macro (V871) (cond ((and (cons? V871) (and (= make-string (hd V871)) (cons? (tl V871)))) (shen.mkstr (hd (tl V871)) (tl (tl V871)))) (true V871)))
58
+ (defun shen.make-string-macro (V885) (cond ((and (cons? V885) (and (= make-string (hd V885)) (cons? (tl V885)))) (shen.mkstr (hd (tl V885)) (tl (tl V885)))) (true V885)))
59
59
 
60
- (defun shen.input-macro (V872) (cond ((and (cons? V872) (and (= lineread (hd V872)) (= () (tl V872)))) (cons lineread (cons (cons stinput ()) ()))) ((and (cons? V872) (and (= input (hd V872)) (= () (tl V872)))) (cons input (cons (cons stinput ()) ()))) ((and (cons? V872) (and (= read (hd V872)) (= () (tl V872)))) (cons read (cons (cons stinput ()) ()))) ((and (cons? V872) (and (= input+ (hd V872)) (and (cons? (tl V872)) (= () (tl (tl V872)))))) (cons input+ (cons (hd (tl V872)) (cons (cons stinput ()) ())))) ((and (cons? V872) (and (= read-byte (hd V872)) (= () (tl V872)))) (cons read-byte (cons (cons stinput ()) ()))) (true V872)))
60
+ (defun shen.input-macro (V886) (cond ((and (cons? V886) (and (= lineread (hd V886)) (= () (tl V886)))) (cons lineread (cons (cons stinput ()) ()))) ((and (cons? V886) (and (= input (hd V886)) (= () (tl V886)))) (cons input (cons (cons stinput ()) ()))) ((and (cons? V886) (and (= read (hd V886)) (= () (tl V886)))) (cons read (cons (cons stinput ()) ()))) ((and (cons? V886) (and (= input+ (hd V886)) (and (cons? (tl V886)) (= () (tl (tl V886)))))) (cons input+ (cons (hd (tl V886)) (cons (cons stinput ()) ())))) ((and (cons? V886) (and (= read-byte (hd V886)) (= () (tl V886)))) (cons read-byte (cons (cons stinput ()) ()))) (true V886)))
61
61
 
62
- (defun shen.compose (V873 V874) (cond ((= () V873) V874) ((cons? V873) (shen.compose (tl V873) ((hd V873) V874))) (true (shen.sys-error shen.compose))))
62
+ (defun shen.compose (V887 V888) (cond ((= () V887) V888) ((cons? V887) (shen.compose (tl V887) ((hd V887) V888))) (true (shen.sys-error shen.compose))))
63
63
 
64
- (defun shen.compile-macro (V875) (cond ((and (cons? V875) (and (= compile (hd V875)) (and (cons? (tl V875)) (and (cons? (tl (tl V875))) (= () (tl (tl (tl V875)))))))) (cons compile (cons (hd (tl V875)) (cons (hd (tl (tl V875))) (cons (cons lambda (cons E (cons (cons if (cons (cons cons? (cons E ())) (cons (cons error (cons "parse error here: ~S~%" (cons E ()))) (cons (cons error (cons "parse error~%" ())) ())))) ()))) ()))))) (true V875)))
64
+ (defun shen.compile-macro (V889) (cond ((and (cons? V889) (and (= compile (hd V889)) (and (cons? (tl V889)) (and (cons? (tl (tl V889))) (= () (tl (tl (tl V889)))))))) (cons compile (cons (hd (tl V889)) (cons (hd (tl (tl V889))) (cons (cons lambda (cons E (cons (cons if (cons (cons cons? (cons E ())) (cons (cons error (cons "parse error here: ~S~%" (cons E ()))) (cons (cons error (cons "parse error~%" ())) ())))) ()))) ()))))) (true V889)))
65
65
 
66
- (defun shen.prolog-macro (V876) (cond ((and (cons? V876) (= prolog? (hd V876))) (let F (gensym shen.f) (let Receive (shen.receive-terms (tl V876)) (let PrologDef (eval (append (cons defprolog (cons F ())) (append Receive (append (cons <-- ()) (append (shen.pass-literals (tl V876)) (cons ; ())))))) (let Query (cons F (append Receive (cons (cons shen.start-new-prolog-process ()) (cons (cons freeze (cons true ())) ())))) Query))))) (true V876)))
66
+ (defun shen.prolog-macro (V890) (cond ((and (cons? V890) (= prolog? (hd V890))) (let F (gensym shen.f) (let Receive (shen.receive-terms (tl V890)) (let PrologDef (eval (append (cons defprolog (cons F ())) (append Receive (append (cons <-- ()) (append (shen.pass-literals (tl V890)) (cons ; ())))))) (let Query (cons F (append Receive (cons (cons shen.start-new-prolog-process ()) (cons (cons freeze (cons true ())) ())))) Query))))) (true V890)))
67
67
 
68
- (defun shen.receive-terms (V881) (cond ((= () V881) ()) ((and (cons? V881) (and (cons? (hd V881)) (and (= receive (hd (hd V881))) (and (cons? (tl (hd V881))) (= () (tl (tl (hd V881)))))))) (cons (hd (tl (hd V881))) (shen.receive-terms (tl V881)))) ((cons? V881) (shen.receive-terms (tl V881))) (true (shen.sys-error shen.receive-terms))))
68
+ (defun shen.receive-terms (V895) (cond ((= () V895) ()) ((and (cons? V895) (and (cons? (hd V895)) (and (= receive (hd (hd V895))) (and (cons? (tl (hd V895))) (= () (tl (tl (hd V895)))))))) (cons (hd (tl (hd V895))) (shen.receive-terms (tl V895)))) ((cons? V895) (shen.receive-terms (tl V895))) (true (shen.sys-error shen.receive-terms))))
69
69
 
70
- (defun shen.pass-literals (V884) (cond ((= () V884) ()) ((and (cons? V884) (and (cons? (hd V884)) (and (= receive (hd (hd V884))) (and (cons? (tl (hd V884))) (= () (tl (tl (hd V884)))))))) (shen.pass-literals (tl V884))) ((cons? V884) (cons (hd V884) (shen.pass-literals (tl V884)))) (true (shen.sys-error shen.pass-literals))))
70
+ (defun shen.pass-literals (V898) (cond ((= () V898) ()) ((and (cons? V898) (and (cons? (hd V898)) (and (= receive (hd (hd V898))) (and (cons? (tl (hd V898))) (= () (tl (tl (hd V898)))))))) (shen.pass-literals (tl V898))) ((cons? V898) (cons (hd V898) (shen.pass-literals (tl V898)))) (true (shen.sys-error shen.pass-literals))))
71
71
 
72
- (defun shen.defprolog-macro (V885) (cond ((and (cons? V885) (and (= defprolog (hd V885)) (cons? (tl V885)))) (compile shen.<defprolog> (tl V885) (lambda Y (shen.prolog-error (hd (tl V885)) Y)))) (true V885)))
72
+ (defun shen.defprolog-macro (V899) (cond ((and (cons? V899) (and (= defprolog (hd V899)) (cons? (tl V899)))) (compile (lambda X880 (shen.<defprolog> X880)) (tl V899) (lambda Y (shen.prolog-error (hd (tl V899)) Y)))) (true V899)))
73
73
 
74
- (defun shen.datatype-macro (V886) (cond ((and (cons? V886) (and (= datatype (hd V886)) (cons? (tl V886)))) (cons shen.process-datatype (cons (shen.intern-type (hd (tl V886))) (cons (cons compile (cons (cons function (cons shen.<datatype-rules> ())) (cons (shen.rcons_form (tl (tl V886))) (cons (cons function (cons shen.datatype-error ())) ())))) ())))) (true V886)))
74
+ (defun shen.datatype-macro (V900) (cond ((and (cons? V900) (and (= datatype (hd V900)) (cons? (tl V900)))) (cons shen.process-datatype (cons (shen.intern-type (hd (tl V900))) (cons (cons compile (cons (cons function (cons shen.<datatype-rules> ())) (cons (shen.rcons_form (tl (tl V900))) (cons (cons function (cons shen.datatype-error ())) ())))) ())))) (true V900)))
75
75
 
76
- (defun shen.intern-type (V887) (intern (cn "type#" (str V887))))
76
+ (defun shen.intern-type (V901) (intern (cn "type#" (str V901))))
77
77
 
78
78
  "(defcc <defmacro>
79
79
  <name> <macrorules> := [define <name> | <macrorules>];)
@@ -91,36 +91,38 @@
91
91
  (defcc <macroaction>
92
92
  <action> := [[walk [function macroexpand] <action>]];)"
93
93
 
94
- (defun shen.@s-macro (V888) (cond ((and (cons? V888) (and (= @s (hd V888)) (and (cons? (tl V888)) (and (cons? (tl (tl V888))) (cons? (tl (tl (tl V888)))))))) (cons @s (cons (hd (tl V888)) (cons (shen.@s-macro (cons @s (tl (tl V888)))) ())))) ((and (cons? V888) (and (= @s (hd V888)) (and (cons? (tl V888)) (and (cons? (tl (tl V888))) (and (= () (tl (tl (tl V888)))) (string? (hd (tl V888)))))))) (let E (explode (hd (tl V888))) (if (> (length E) 1) (shen.@s-macro (cons @s (append E (tl (tl V888))))) V888))) (true V888)))
94
+ (defun shen.@s-macro (V902) (cond ((and (cons? V902) (and (= @s (hd V902)) (and (cons? (tl V902)) (and (cons? (tl (tl V902))) (cons? (tl (tl (tl V902)))))))) (cons @s (cons (hd (tl V902)) (cons (shen.@s-macro (cons @s (tl (tl V902)))) ())))) ((and (cons? V902) (and (= @s (hd V902)) (and (cons? (tl V902)) (and (cons? (tl (tl V902))) (and (= () (tl (tl (tl V902)))) (string? (hd (tl V902)))))))) (let E (explode (hd (tl V902))) (if (> (length E) 1) (shen.@s-macro (cons @s (append E (tl (tl V902))))) V902))) (true V902)))
95
95
 
96
- (defun shen.synonyms-macro (V889) (cond ((and (cons? V889) (= synonyms (hd V889))) (cons shen.synonyms-help (cons (shen.rcons_form (tl V889)) ()))) (true V889)))
96
+ (defun shen.synonyms-macro (V903) (cond ((and (cons? V903) (= synonyms (hd V903))) (cons shen.synonyms-help (cons (shen.rcons_form (shen.curry-synonyms (tl V903))) ()))) (true V903)))
97
97
 
98
- (defun shen.nl-macro (V890) (cond ((and (cons? V890) (and (= nl (hd V890)) (= () (tl V890)))) (cons nl (cons 1 ()))) (true V890)))
98
+ (defun shen.curry-synonyms (V904) (map (lambda X881 (shen.curry-type X881)) V904))
99
99
 
100
- (defun shen.assoc-macro (V891) (cond ((and (cons? V891) (and (cons? (tl V891)) (and (cons? (tl (tl V891))) (and (cons? (tl (tl (tl V891)))) (element? (hd V891) (cons @p (cons @v (cons append (cons and (cons or (cons + (cons * (cons do ()))))))))))))) (cons (hd V891) (cons (hd (tl V891)) (cons (shen.assoc-macro (cons (hd V891) (tl (tl V891)))) ())))) (true V891)))
100
+ (defun shen.nl-macro (V905) (cond ((and (cons? V905) (and (= nl (hd V905)) (= () (tl V905)))) (cons nl (cons 1 ()))) (true V905)))
101
101
 
102
- (defun shen.let-macro (V892) (cond ((and (cons? V892) (and (= let (hd V892)) (and (cons? (tl V892)) (and (cons? (tl (tl V892))) (and (cons? (tl (tl (tl V892)))) (cons? (tl (tl (tl (tl V892)))))))))) (cons let (cons (hd (tl V892)) (cons (hd (tl (tl V892))) (cons (shen.let-macro (cons let (tl (tl (tl V892))))) ()))))) (true V892)))
102
+ (defun shen.assoc-macro (V906) (cond ((and (cons? V906) (and (cons? (tl V906)) (and (cons? (tl (tl V906))) (and (cons? (tl (tl (tl V906)))) (element? (hd V906) (cons @p (cons @v (cons append (cons and (cons or (cons + (cons * (cons do ()))))))))))))) (cons (hd V906) (cons (hd (tl V906)) (cons (shen.assoc-macro (cons (hd V906) (tl (tl V906)))) ())))) (true V906)))
103
103
 
104
- (defun shen.abs-macro (V893) (cond ((and (cons? V893) (and (= /. (hd V893)) (and (cons? (tl V893)) (and (cons? (tl (tl V893))) (cons? (tl (tl (tl V893)))))))) (cons lambda (cons (hd (tl V893)) (cons (shen.abs-macro (cons /. (tl (tl V893)))) ())))) ((and (cons? V893) (and (= /. (hd V893)) (and (cons? (tl V893)) (and (cons? (tl (tl V893))) (= () (tl (tl (tl V893)))))))) (cons lambda (tl V893))) (true V893)))
104
+ (defun shen.let-macro (V907) (cond ((and (cons? V907) (and (= let (hd V907)) (and (cons? (tl V907)) (and (cons? (tl (tl V907))) (and (cons? (tl (tl (tl V907)))) (cons? (tl (tl (tl (tl V907)))))))))) (cons let (cons (hd (tl V907)) (cons (hd (tl (tl V907))) (cons (shen.let-macro (cons let (tl (tl (tl V907))))) ()))))) (true V907)))
105
105
 
106
- (defun shen.cases-macro (V896) (cond ((and (cons? V896) (and (= cases (hd V896)) (and (cons? (tl V896)) (and (= true (hd (tl V896))) (cons? (tl (tl V896))))))) (hd (tl (tl V896)))) ((and (cons? V896) (and (= cases (hd V896)) (and (cons? (tl V896)) (and (cons? (tl (tl V896))) (= () (tl (tl (tl V896)))))))) (cons if (cons (hd (tl V896)) (cons (hd (tl (tl V896))) (cons (cons simple-error (cons "error: cases exhausted" ())) ()))))) ((and (cons? V896) (and (= cases (hd V896)) (and (cons? (tl V896)) (cons? (tl (tl V896)))))) (cons if (cons (hd (tl V896)) (cons (hd (tl (tl V896))) (cons (shen.cases-macro (cons cases (tl (tl (tl V896))))) ()))))) ((and (cons? V896) (and (= cases (hd V896)) (and (cons? (tl V896)) (= () (tl (tl V896)))))) (simple-error "error: odd number of case elements
107
- ")) (true V896)))
106
+ (defun shen.abs-macro (V908) (cond ((and (cons? V908) (and (= /. (hd V908)) (and (cons? (tl V908)) (and (cons? (tl (tl V908))) (cons? (tl (tl (tl V908)))))))) (cons lambda (cons (hd (tl V908)) (cons (shen.abs-macro (cons /. (tl (tl V908)))) ())))) ((and (cons? V908) (and (= /. (hd V908)) (and (cons? (tl V908)) (and (cons? (tl (tl V908))) (= () (tl (tl (tl V908)))))))) (cons lambda (tl V908))) (true V908)))
108
107
 
109
- (defun shen.timer-macro (V897) (cond ((and (cons? V897) (and (= time (hd V897)) (and (cons? (tl V897)) (= () (tl (tl V897)))))) (shen.let-macro (cons let (cons Start (cons (cons get-time (cons run ())) (cons Result (cons (hd (tl V897)) (cons Finish (cons (cons get-time (cons run ())) (cons Time (cons (cons - (cons Finish (cons Start ()))) (cons Message (cons (cons shen.prhush (cons (cons cn (cons "
108
+ (defun shen.cases-macro (V911) (cond ((and (cons? V911) (and (= cases (hd V911)) (and (cons? (tl V911)) (and (= true (hd (tl V911))) (cons? (tl (tl V911))))))) (hd (tl (tl V911)))) ((and (cons? V911) (and (= cases (hd V911)) (and (cons? (tl V911)) (and (cons? (tl (tl V911))) (= () (tl (tl (tl V911)))))))) (cons if (cons (hd (tl V911)) (cons (hd (tl (tl V911))) (cons (cons simple-error (cons "error: cases exhausted" ())) ()))))) ((and (cons? V911) (and (= cases (hd V911)) (and (cons? (tl V911)) (cons? (tl (tl V911)))))) (cons if (cons (hd (tl V911)) (cons (hd (tl (tl V911))) (cons (shen.cases-macro (cons cases (tl (tl (tl V911))))) ()))))) ((and (cons? V911) (and (= cases (hd V911)) (and (cons? (tl V911)) (= () (tl (tl V911)))))) (simple-error "error: odd number of case elements
109
+ ")) (true V911)))
110
+
111
+ (defun shen.timer-macro (V912) (cond ((and (cons? V912) (and (= time (hd V912)) (and (cons? (tl V912)) (= () (tl (tl V912)))))) (shen.let-macro (cons let (cons Start (cons (cons get-time (cons run ())) (cons Result (cons (hd (tl V912)) (cons Finish (cons (cons get-time (cons run ())) (cons Time (cons (cons - (cons Finish (cons Start ()))) (cons Message (cons (cons shen.prhush (cons (cons cn (cons "
110
112
  run time: " (cons (cons cn (cons (cons str (cons Time ())) (cons " secs
111
- " ()))) ()))) (cons (cons stoutput ()) ()))) (cons Result ())))))))))))))) (true V897)))
113
+ " ()))) ()))) (cons (cons stoutput ()) ()))) (cons Result ())))))))))))))) (true V912)))
112
114
 
113
- (defun shen.tuple-up (V898) (cond ((cons? V898) (cons @p (cons (hd V898) (cons (shen.tuple-up (tl V898)) ())))) (true V898)))
115
+ (defun shen.tuple-up (V913) (cond ((cons? V913) (cons @p (cons (hd V913) (cons (shen.tuple-up (tl V913)) ())))) (true V913)))
114
116
 
115
- (defun shen.put/get-macro (V899) (cond ((and (cons? V899) (and (= put (hd V899)) (and (cons? (tl V899)) (and (cons? (tl (tl V899))) (and (cons? (tl (tl (tl V899)))) (= () (tl (tl (tl (tl V899)))))))))) (cons put (cons (hd (tl V899)) (cons (hd (tl (tl V899))) (cons (hd (tl (tl (tl V899)))) (cons (cons value (cons *property-vector* ())) ())))))) ((and (cons? V899) (and (= get (hd V899)) (and (cons? (tl V899)) (and (cons? (tl (tl V899))) (= () (tl (tl (tl V899)))))))) (cons get (cons (hd (tl V899)) (cons (hd (tl (tl V899))) (cons (cons value (cons *property-vector* ())) ()))))) (true V899)))
117
+ (defun shen.put/get-macro (V914) (cond ((and (cons? V914) (and (= put (hd V914)) (and (cons? (tl V914)) (and (cons? (tl (tl V914))) (and (cons? (tl (tl (tl V914)))) (= () (tl (tl (tl (tl V914)))))))))) (cons put (cons (hd (tl V914)) (cons (hd (tl (tl V914))) (cons (hd (tl (tl (tl V914)))) (cons (cons value (cons *property-vector* ())) ())))))) ((and (cons? V914) (and (= get (hd V914)) (and (cons? (tl V914)) (and (cons? (tl (tl V914))) (= () (tl (tl (tl V914)))))))) (cons get (cons (hd (tl V914)) (cons (hd (tl (tl V914))) (cons (cons value (cons *property-vector* ())) ()))))) (true V914)))
116
118
 
117
- (defun shen.function-macro (V900) (cond ((and (cons? V900) (and (= function (hd V900)) (and (cons? (tl V900)) (= () (tl (tl V900)))))) (shen.function-abstraction (hd (tl V900)) (arity (hd (tl V900))))) (true V900)))
119
+ (defun shen.function-macro (V915) (cond ((and (cons? V915) (and (= function (hd V915)) (and (cons? (tl V915)) (= () (tl (tl V915)))))) (shen.function-abstraction (hd (tl V915)) (arity (hd (tl V915))))) (true V915)))
118
120
 
119
- (defun shen.function-abstraction (V901 V902) (cond ((= 0 V902) (cons freeze (cons V901 ()))) ((= -1 V902) V901) (true (shen.function-abstraction-help V901 V902 ()))))
121
+ (defun shen.function-abstraction (V916 V917) (cond ((= 0 V917) (cons freeze (cons V916 ()))) ((= -1 V917) V916) (true (shen.function-abstraction-help V916 V917 ()))))
120
122
 
121
- (defun shen.function-abstraction-help (V903 V904 V905) (cond ((= 0 V904) (cons V903 V905)) (true (let X (gensym V) (cons /. (cons X (cons (shen.function-abstraction-help V903 (- V904 1) (append V905 (cons X ()))) ())))))))
123
+ (defun shen.function-abstraction-help (V918 V919 V920) (cond ((= 0 V919) (cons V918 V920)) (true (let X (gensym V) (cons /. (cons X (cons (shen.function-abstraction-help V918 (- V919 1) (append V920 (cons X ()))) ())))))))
122
124
 
123
- (defun undefmacro (V906) (do (set *macros* (remove V906 (value *macros*))) V906))
125
+ (defun undefmacro (V921) (do (set *macros* (remove V921 (value *macros*))) V921))
124
126
 
125
127
 
126
128