From d5a314b186ac1dc95a978911a644b28139360634 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Sat, 19 Jul 2014 14:30:29 +0900 Subject: [PATCH] refactor define-values --- piclib/CMakeLists.txt | 2 +- piclib/prelude.scm | 21 +++++++-------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/piclib/CMakeLists.txt b/piclib/CMakeLists.txt index ce373fb2..50b59f9b 100644 --- a/piclib/CMakeLists.txt +++ b/piclib/CMakeLists.txt @@ -1,5 +1,5 @@ list(APPEND PICLIB_SCHEME_LIBS - ${PROJECT_SOURCE_DIR}/piclib/picrin/macro.scm + ${PROJECT_SOURCE_DIR}/piclib/picrin/macro.scm # the only dependency prelude requires ${PROJECT_SOURCE_DIR}/piclib/prelude.scm ${PROJECT_SOURCE_DIR}/piclib/picrin/array.scm ${PROJECT_SOURCE_DIR}/piclib/picrin/dictionary.scm diff --git a/piclib/prelude.scm b/piclib/prelude.scm index 6d8d6be9..7b45efa5 100644 --- a/piclib/prelude.scm +++ b/piclib/prelude.scm @@ -329,18 +329,6 @@ expr) (reverse list))) - (define (predefine var) - `(define ,var #f)) - - (define (predefines vars) - (map predefine vars)) - - (define (assign var val) - `(set! ,var ,val)) - - (define (assigns vars vals) - (map assign vars vals)) - (define uniq (let ((counter 0)) (lambda (x) @@ -355,10 +343,15 @@ (formal* (walk uniq formal)) (exprs (cddr form))) `(begin - ,@(predefines (flatten formal)) + ,@(map + (lambda (var) `(define ,var #f)) + (flatten formal)) (call-with-values (lambda () ,@exprs) (lambda ,formal* - ,@(assigns (flatten formal) (flatten formal*))))))))) + ,@(map + (lambda (var val) `(set! ,var ,val)) + (flatten formal) + (flatten formal*))))))))) (export let-values let*-values