]> gitweb.factorcode.org Git - factor.git/blob - core/inference/inference.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / core / inference / inference.factor
1 ! Copyright (C) 2004, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: inference.backend inference.state inference.dataflow
4 inference.known-words inference.transforms inference.errors
5 kernel io effects namespaces sequences quotations vocabs
6 generic words ;
7 IN: inference
8
9 GENERIC: infer ( quot -- effect )
10
11 M: callable infer ( quot -- effect )
12     [ f infer-quot ] with-infer drop ;
13
14 : infer. ( quot -- )
15     infer effect>string print ;
16
17 GENERIC: dataflow ( quot -- dataflow )
18
19 M: callable dataflow
20     [ f infer-quot ] with-infer nip ;
21
22 GENERIC# dataflow-with 1 ( quot stack -- dataflow )
23
24 M: callable dataflow-with
25     [
26         V{ } like meta-d set
27         f infer-quot
28     ] with-infer nip ;
29
30 : forget-errors ( -- )
31     all-words [
32         dup subwords [ f "no-effect" set-word-prop ] each
33         f "no-effect" set-word-prop
34     ] each ;