2 USING: kernel parser math quotations namespaces sequences namespaces.lib
7 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9 ! : set-parameters ( seq -- ) reverse [ set ] each ;
11 : [set-parameters] ( seq -- quot ) [ [ set ] curry ] map concat ;
13 : set-parameters ( seq -- ) [set-parameters] call ;
15 \ set-parameters [ [set-parameters] ] 1 define-transform
17 : parametric-quot ( parameters quot -- quot )
18 [ [ swap ] set-parameters [ ] call ] make* ;
20 : scoped-quot ( quot -- quot ) [ with-scope ] curry ;
22 : closed-quot ( quot -- quot )
23 [ namestack >r [ namestack ] set-namestack [ ] call r> set-namestack ] make* ;
25 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27 : lambda ( parameters quot -- ) parametric-quot scoped-quot closed-quot ;
29 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31 : C[ \ ] [ >quotation ] parse-literal \ closed-quot parsed ; parsing