16 ms·
The SWI-Prolog ecosystem supports some probabilistic extensions such as http://www.swi-prolog.org/pack/list?p=ccprism http://www.swi-prolog.org/pack/list?p=ccpr
by eazar001 8y ago
The SWI-Prolog ecosystem supports some probabilistic extensions such as http://www.swi-prolog.org/pack/list?p=ccprism http://www.swi-prolog.org/pack/list?p=ccprism, and http://www.swi-prolog.org/pack/list?p=cplint http://www.swi-prolog.org/pack/list?p=cplint.
Also, the (!/0) operator allows you to prune choice-points and control backtracking so that it is not unconditional. Many Prolog implementations support (->/2) operator, as well as ((*->)/2) -- the soft cut, for more fine-grained control. SWI has a nice library for even further control over backtracking as well: http://www.swi-prolog.org/pldoc/man?section=solutionsequences http://www.swi-prolog.org/pldoc/man?section=solutionsequence....
Also good Prolog programmers usually are not overly concerned with backtracking, as they usually have strong knowledge of modes and determinism. See: http://www.swi-prolog.org/pldoc/man?section=modes http://www.swi-prolog.org/pldoc/man?section=modes. This is mostly second-nature to a skilled Prolog developer.