diff --git a/koka_bench/newlisp/newlisp-macro-cfold.nl b/koka_bench/newlisp/newlisp-macro-cfold.nl index 65a2f5d..97cc49c 100644 --- a/koka_bench/newlisp/newlisp-macro-cfold.nl +++ b/koka_bench/newlisp/newlisp-macro-cfold.nl @@ -31,7 +31,6 @@ (macro (my-match X) X) (constant 'my-match (lambda-macro (X) (expand (list let (list '__MATCH_SYM 'X) (cons cond (my-match-helper '__MATCH_SYM (args) 0))) 'X))) - (define (mk-expr n v) (cond ((= n 0) (cond ((= v 0) (list 'VR 1 0)) (true (list 'VL v 0)))) (true (list 'A (mk-expr (- n 1) (+ v 1)) (mk-expr (- n 1) (max (- v 1) 0)))))) @@ -49,9 +48,9 @@ ('M c d) (append-mul (reassoc a) (reassoc b)) e e)) -(define (cfold e) (my-match e - ('A a b) (letn (ap (cfold a) - bp (cfold b)) +(define (cfoldD e) (my-match e + ('A a b) (letn (ap (cfoldD a) + bp (cfoldD b)) (my-match ap ('VL s t) (my-match bp ('VL m n) (list 'VL (+ s m) 0) @@ -62,8 +61,8 @@ ep (list 'A ap bp) ) ) - ('M c d) (letn (cp (cfold c) - dp (cfold dec)) + ('M c d) (letn (cp (cfoldD c) + dp (cfoldD dec)) (my-match cp ('VL s t) (my-match dp ('VL m n) (list 'VL (* s m) 0) @@ -76,13 +75,13 @@ ) e e)) -(define (eval e) (my-match e +(define (evalD e) (my-match e ('VR a b) 0 ('VL c d) c - ('A e f) (+ (eval e) (eval f)) - ('M l r) (* (eval l) (eval r)))) + ('A e f) (+ (evalD e) (evalD f)) + ('M l r) (* (evalD l) (evalD r)))) -(println (eval (cfold (reassoc (mk-expr (integer (main-args 2)) 1))))) +(println (evalD (cfoldD (reassoc (mk-expr (integer (main-args 2)) 1))))) (exit) diff --git a/koka_bench/newlisp/newlisp-macro-deriv.nl b/koka_bench/newlisp/newlisp-macro-deriv.nl index 9c522f8..272596c 100644 --- a/koka_bench/newlisp/newlisp-macro-deriv.nl +++ b/koka_bench/newlisp/newlisp-macro-deriv.nl @@ -82,7 +82,7 @@ ('A f g) (+ (countD f) (countD g)) ('M f g) (+ (countD f) (countD g)) ('P f g) (+ (countD f) (countD g)) - ('L f g) (countD f)))) + ('L f g) (countD f))) (define (nest-aux s f n x) (cond ((= n 0) x) (true (nest-aux s f (- n 1) (f (- s n) x))))) diff --git a/koka_bench/newlisp/newlisp-slow-fexpr-cfold.nl b/koka_bench/newlisp/newlisp-slow-fexpr-cfold.nl index 02a03d7..953c21d 100644 --- a/koka_bench/newlisp/newlisp-slow-fexpr-cfold.nl +++ b/koka_bench/newlisp/newlisp-slow-fexpr-cfold.nl @@ -47,9 +47,9 @@ ('M c d) (append-mul (reassoc a) (reassoc b)) e e)) -(define (cfold e) (my-match e - ('A a b) (letn (ap (cfold a) - bp (cfold b)) +(define (cfoldD e) (my-match e + ('A a b) (letn (ap (cfoldD a) + bp (cfoldD b)) (my-match ap ('VL s t) (my-match bp ('VL m n) (list 'VL (+ s m) 0) @@ -60,8 +60,8 @@ ep (list 'A ap bp) ) ) - ('M c d) (letn (cp (cfold c) - dp (cfold dec)) + ('M c d) (letn (cp (cfoldD c) + dp (cfoldD dec)) (my-match cp ('VL s t) (my-match dp ('VL m n) (list 'VL (* s m) 0) @@ -74,13 +74,13 @@ ) e e)) -(define (eval e) (my-match e +(define (evalD e) (my-match e ('VR a b) 0 ('VL c d) c - ('A e f) (+ (eval e) (eval f)) - ('M l r) (* (eval l) (eval r)))) + ('A e f) (+ (evalD e) (evalD f)) + ('M l r) (* (evalD l) (evalD r)))) -(println (eval (cfold (reassoc (mk-expr (integer (main-args 2)) 1))))) +(println (evalD (cfoldD (reassoc (mk-expr (integer (main-args 2)) 1))))) (exit) diff --git a/koka_bench/newlisp/newlisp-slow-fexpr-deriv.nl b/koka_bench/newlisp/newlisp-slow-fexpr-deriv.nl index 0f397e4..810a555 100644 --- a/koka_bench/newlisp/newlisp-slow-fexpr-deriv.nl +++ b/koka_bench/newlisp/newlisp-slow-fexpr-deriv.nl @@ -79,7 +79,7 @@ ('A f g) (+ (countD f) (countD g)) ('M f g) (+ (countD f) (countD g)) ('P f g) (+ (countD f) (countD g)) - ('L f g) (countD f)))) + ('L f g) (countD f))) (define (nest-aux s f n x) (cond ((= n 0) x) (true (nest-aux s f (- n 1) (f (- s n) x))))) diff --git a/koka_bench/newlisp/newlisp-slow-fexpr-nqueens.nl b/koka_bench/newlisp/newlisp-slow-fexpr-nqueens.nl index 5dd7a05..cb385b7 100644 --- a/koka_bench/newlisp/newlisp-slow-fexpr-nqueens.nl +++ b/koka_bench/newlisp/newlisp-slow-fexpr-nqueens.nl @@ -29,4 +29,16 @@ (true '((true ("none matched")))))) (define-macro (my-match x) (eval (list let (list '__MATCH_SYM x) (cons cond (my-match-helper '__MATCH_SYM (args) 0))))) +(define (safe q d xs) ()) + +(define (extendS q acc xss) (my-match xss + )) + +(define (findS n q) (cond ((= q 0) (list nil)) + true (extendS n nil (findS n (- q 1))))) + +(define (nqueens n) (length (findS n n))) + +(println (nqueens (integer (main-args 2)))) + (exit)