]> gitweb.factorcode.org Git - factor.git/commitdiff
vocabs: faster child-vocab?.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 7 Feb 2014 04:49:29 +0000 (20:49 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 7 Feb 2014 04:49:29 +0000 (20:49 -0800)
core/vocabs/vocabs.factor

index 72f179185807d4e391f5d7ef2a44cb94cb39bf6e..77b3d681d3654eaf19702a66a757cccb1d81671f 100644 (file)
@@ -111,8 +111,13 @@ ERROR: no-vocab name ;
     sift ;
 
 : child-vocab? ( prefix name -- ? )
-    2dup = pick empty? or
-    [ 2drop t ] [ swap CHAR: . suffix head? ] if ;
+    swap [ drop t ] [
+        2dup = [ 2drop t ] [
+            2dup head? [
+                length swap ?nth CHAR: . =
+            ] [ 2drop f ] if
+        ] if
+    ] if-empty ;
 
 : child-vocabs ( vocab -- seq )
     vocab-name vocabs [ child-vocab? ] with filter ;