]> gitweb.factorcode.org Git - factor.git/commitdiff
Add amb-all and bag-of
authorSamuel Tardieu <sam@rfc1149.net>
Sun, 24 May 2009 13:43:28 +0000 (15:43 +0200)
committerSamuel Tardieu <sam@rfc1149.net>
Sun, 24 May 2009 14:03:00 +0000 (16:03 +0200)
extra/backtrack/backtrack.factor

index 48bae976990a4e399c930309d7115d35fe841bbe..e4e13c3363ae4328b363f59bb301c8b2c1999515 100755 (executable)
@@ -71,3 +71,9 @@ MACRO: amb-execute ( seq -- quot )
 \r
 : cut-amb ( -- )\r
     f failure set ;\r
+\r
+: amb-all ( quot -- )\r
+    [ { t f } amb [ call fail ] [ drop ] if ] amb-preserve ; inline\r
+\r
+: bag-of ( quot -- seq )\r
+    V{ } clone [ '[ @ _ push ] amb-all ] keep ; inline\r