]> gitweb.factorcode.org Git - factor.git/commitdiff
Added backtrack library
authorU-WSCHLIEP-PC\wschliep <wschliep@wschliep-pc.(none)>
Tue, 8 Jul 2008 17:22:18 +0000 (13:22 -0400)
committerU-WSCHLIEP-PC\wschliep <wschliep@wschliep-pc.(none)>
Tue, 8 Jul 2008 17:22:18 +0000 (13:22 -0400)
extra/backtrack/authors.txt [new file with mode: 0755]
extra/backtrack/backtrack.factor [new file with mode: 0755]
extra/backtrack/description.txt [new file with mode: 0755]

diff --git a/extra/backtrack/authors.txt b/extra/backtrack/authors.txt
new file mode 100755 (executable)
index 0000000..50c9c38
--- /dev/null
@@ -0,0 +1 @@
+William Schlieper
\ No newline at end of file
diff --git a/extra/backtrack/backtrack.factor b/extra/backtrack/backtrack.factor
new file mode 100755 (executable)
index 0000000..7ab11ab
--- /dev/null
@@ -0,0 +1,20 @@
+! Copyright (C) 2008 William Schlieper\r
+! See http://factorcode.org/license.txt for BSD license.\r
+\r
+USING: kernel continuations sequences namespaces fry ;\r
+\r
+IN: backtrack\r
+\r
+SYMBOL: failure\r
+\r
+: amb ( seq -- elt )\r
+    failure get\r
+    '[ , _ '[ , '[ failure set , , continue-with ] callcc0 ] each\r
+       , continue ] callcc1 ;\r
+\r
+: fail ( -- )\r
+    f amb drop ;\r
+\r
+: require ( ? -- )\r
+    [ fail ] unless ;\r
+\r
diff --git a/extra/backtrack/description.txt b/extra/backtrack/description.txt
new file mode 100755 (executable)
index 0000000..d2d3918
--- /dev/null
@@ -0,0 +1 @@
+Simple non-determinism
\ No newline at end of file