diff options
author | Masaya Tojo <masaya@tojo.tokyo> | 2020-11-18 23:17:18 +0900 |
---|---|---|
committer | Masaya Tojo <masaya@tojo.tokyo> | 2020-11-18 23:17:18 +0900 |
commit | 03361beae477d7bb1ebde3871d2230b9dd75a8a4 (patch) | |
tree | b54f25475f25cd10174d6e8ac9bccf602e951066 | |
parent | 31901d7bc02e464dd194f4b235287b5dce056471 (diff) |
wip23
-rw-r--r-- | vikalpa.scm | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/vikalpa.scm b/vikalpa.scm index c66e130..fb6b500 100644 --- a/vikalpa.scm +++ b/vikalpa.scm @@ -418,19 +418,6 @@ (define (primitive-function-vars pf) (list-ref pf 2)) -(define (match-primitive-function pf expression) - (and (pair? expression) - (eq? (primitive-function-name pf) (car expression)) - (list? (cdr expression)) - (every identity (map (lambda (pred expr) - (and (expr-quoted? expr) - (pred (expr-unquote expr)))) - (primitive-function-preds pf) - (cdr expression))))) - -(define (apply-primitive-function pf expression) - (apply (primitive-function-proc pf) (cdr expression))) - (define (function? x) (and (list? x) (= 4 (length x)) @@ -945,6 +932,18 @@ (error "define-system: error")) (current-system)))))) +(define-syntax system + (syntax-rules () + ((_ (systems ...) expr ...) + (lambda* (#:optional (parent (make-system '() '()))) + (parameterize ([current-system + ((compose systems ... identity) parent)]) + expr + ... + (unless (system? (current-system)) + (error "define-system: error")) + (current-system)))))) + (define (atom? x) (not (pair? x))) @@ -1271,7 +1270,7 @@ (proof-sequence pf))) (() (rewrite sys - (theorem*-expression pf) + (theorem*-expression t) (proof-sequence pf))) (else (error "prove/theorem: fail")))) @@ -1378,6 +1377,7 @@ (next (definition-name (car defs)))))))) (else (format #t "~a の証明がありません(しょぼ〜ん)~%" - (definition-name (car defs)))))))) + (definition-name (car defs))) + (next (definition-name (car defs)))))))) (else (next)))))) |