Skip to content

Commit a396c42

Browse files
committed
Wip: amb existing
1 parent b6d16ec commit a396c42

File tree

3 files changed

+20
-35
lines changed

3 files changed

+20
-35
lines changed

src/ambeval.c

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -143,22 +143,18 @@ static void init(obj execution_environment)
143143
" (fail2)))))"
144144
" fail))))",
145145
ambenv);
146-
// evalstr("(define (analyze-apply exp)"
147-
// " (let ((fproc (analyze (apply-operator exp)))"
148-
// " (argsproc (analyze (apply-operands exp))))"
149-
// " (lambda (env succeed fail) "
150-
// "(display \" ** HERE ** \")"
151-
// " (fproc env"
152-
// " (lambda (proc fail2)"
153-
// " (argsproc env"
154-
// " (lambda (args fail3)"
155-
// " (execute-application proc args succeed fail3)"
156-
// " )"
157-
// " fail2"
158-
// " )"
159-
// " )"
160-
// " fail))))",
161-
// ambenv);
146+
evalstr("(define (analyze-apply exp)"
147+
" (let ((fproc (analyze (apply-operator exp)))"
148+
" (argsproc (analyze (apply-operands exp))))"
149+
" (lambda (env succeed fail) "
150+
" (fproc env"
151+
" (lambda (proc fail2)"
152+
" (argsproc env"
153+
" (lambda (args fail3)"
154+
" (execute-application proc args succeed fail3))"
155+
" fail2))"
156+
" fail))))",
157+
ambenv);
162158
evalstr("(define (analyze-application exp)"
163159
" (let ((fproc (analyze (operator exp)))"
164160
" (aprocs (map analyze (operands exp))))"
@@ -204,27 +200,15 @@ static void init(obj execution_environment)
204200
" proc))))",
205201
ambenv);
206202

207-
// evalstr("(define (analyze-apply exp)"
208-
// " (let ((fproc (analyze (apply-operator exp)))"
209-
// " (argsproc (analyze (apply-operands exp))))"
210-
// " (lambda (env)"
211-
// " (execute-application (fproc env)"
212-
// " (argsproc env)))))",
213-
// ambenv);
214-
// evalstr("(define (analyze-application exp)"
215-
// " (let ((fproc (analyze (operator exp)))"
216-
// " (aprocs (map analyze (operands exp))))"
217-
// " (lambda (env)"
218-
// " (execute-application (fproc env)"
219-
// " (map (lambda (aproc) (aproc env))"
220-
// " aprocs)))))",
221-
// ambenv);
203+
evalstr("(define (analyze-time exp)"
204+
" (let ((proc (analyze (timed-expr exp))))"
205+
" (lambda (env succeed fail)"
206+
" (time (proc env succeed fail)))))",
207+
ambenv);
222208
}
223209

224210
static obj ambeval(obj exp, obj exenv, obj succeed, obj fail)
225211
{
226-
// (void)succeed, (void)fail;
227-
228212
static bool haveinit = false;
229213

230214
bool orig_gc = disable_gc;

src/eval.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "ambeval.h"
55
#include "aneval.h"
66

7-
obj (*eval)(obj, obj) = eceval;
7+
obj (*eval)(obj, obj) = ambeval2;
88

99
void use_ambeval(void)
1010
{

test/runall

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ run() {
1313

1414
export -f run
1515

16-
find $source_dir -type f -name 'ex*.sicp' -exec bash -c 'run $0' {} \;
16+
find $source_dir -type f -name 'ex*.sicp' | sort | while read line ; do run $line ; done
17+
# find $source_dir -type f -name 'ex*.sicp' -exec bash -c 'run $0' {} \;

0 commit comments

Comments
 (0)