]> gitweb.factorcode.org Git - factor.git/commitdiff
functors: make sure to unuse functor-words, some cleanup.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 22 Jun 2015 22:58:59 +0000 (15:58 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 22 Jun 2015 22:58:59 +0000 (15:58 -0700)
basis/functors/backend/backend.factor
basis/functors/functors.factor

index 834092d13ae161d9add9c5f27e8fca8c30475cd5..a2ed4717a4ec91ad45add2fa600d488cd0d61f5b 100644 (file)
@@ -1,6 +1,6 @@
-USING: accessors arrays assocs generic.standard kernel
-lexer locals.types namespaces parser quotations vocabs.parser
-words classes.tuple ;
+USING: accessors arrays assocs classes.tuple generic.standard
+kernel lexer locals.types namespaces parser quotations
+vocabs.parser words ;
 IN: functors.backend
 
 DEFER: functor-words
index 104e4666ec1f041b841f379fe1e1c7064be4ece2..5f5b13a4278bc63158577f14f6f9bc22942c2152 100644 (file)
@@ -1,11 +1,11 @@
 ! Copyright (C) 2008, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays assocs classes.mixin classes.parser
-classes.singleton classes.tuple classes.tuple.parser
-combinators effects.parser fry functors.backend generic
-generic.parser interpolate io.streams.string kernel lexer
-locals.parser locals.types macros make namespaces parser
-quotations sequences vocabs.parser words words.symbol ;
+classes.singleton classes.tuple classes.tuple.parser combinators
+effects.parser fry functors.backend generic generic.parser
+interpolate io.streams.string kernel lexer locals.parser
+locals.types macros make namespaces parser quotations sequences
+vocabs.parser words words.symbol ;
 IN: functors
 
 ! This is a hack
@@ -146,21 +146,18 @@ DEFER: ;FUNCTOR delimiter
     [ first2 [ make-local ] dip 2array ]
     produce 2nip ;
 
-: with-bindings ( quot -- words assoc )
-    in-lambda? on H{ } make ; inline
-
 : parse-bindings ( end -- words assoc )
     [
         building get use-words
         (parse-bindings)
-    ] with-bindings ;
+    ] H{ } make ;
 
 : parse-functor-body ( -- form )
-    functor-words use-words
-    "WHERE" parse-bindings
-    [ [ swap <def> suffix ] { } assoc>map concat ]
-    [ [ \ ;FUNCTOR parse-until >quotation ] with-lambda-scope ] bi*
-    [ ] append-as ;
+    functor-words [
+        "WHERE" parse-bindings drop
+        [ swap <def> suffix ] { } assoc>map concat
+        \ ;FUNCTOR parse-until [ ] append-as
+    ] with-lambda-scope ;
 
 : (FUNCTOR:) ( -- word def effect )
     scan-new-word [ parse-functor-body ] parse-locals-definition ;