From 765607bc9a63af61ea08455e3fb649fef3bebd35 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Tue, 1 Jul 2008 09:31:52 -0500 Subject: [PATCH] rewrite-closures: Minor improvements --- extra/rewrite-closures/rewrite-closures.factor | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/extra/rewrite-closures/rewrite-closures.factor b/extra/rewrite-closures/rewrite-closures.factor index 31b88eeaa4..198e1744bc 100644 --- a/extra/rewrite-closures/rewrite-closures.factor +++ b/extra/rewrite-closures/rewrite-closures.factor @@ -1,22 +1,19 @@ -USING: kernel parser math quotations namespaces sequences namespaces.lib - inference.transforms fry ; +USING: kernel parser math quotations namespaces sequences macros fry ; IN: rewrite-closures ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! : set-parameters ( seq -- ) reverse [ set ] each ; +: [set-parameters] ( seq -- quot ) reverse [ [ set ] curry ] map concat ; -: [set-parameters] ( seq -- quot ) [ [ set ] curry ] map concat ; +MACRO: set-parameters ( seq -- quot ) [set-parameters] ; -: set-parameters ( seq -- ) [set-parameters] call ; - -\ set-parameters [ [set-parameters] ] 1 define-transform +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : parametric-quot ( parameters quot -- quot ) '[ , set-parameters , call ] ; -: scoped-quot ( quot -- quot ) [ with-scope ] curry ; +: scoped-quot ( quot -- quot ) '[ , with-scope ] ; : closed-quot ( quot -- quot ) namestack swap '[ namestack [ , set-namestack @ ] dip set-namestack ] ;