Return the first match of a backward chaining goal.

kw

any `pattern-to-instantiate` `goal-to-prove` => `result`, `successp`

pattern-to-instantiate⇩ | |

A list or symbol. | |

goal-to-prove⇩ |
Any backward chaining goal. |

result | `nil` or a value matching pattern-to-instantiate. |

successp |
A boolean. |

The function `any`

starts the backward chaining inference engine to look for any set of bindings which satisfy `goal-to-prove`. Using those bindings, `pattern-to-instantiate` is instantiated and returned.

Two values are returned. The second value indicates with `t`

that a proof was found, or with `nil`

that no proof exists. In the former case, the first value is the instantiated version of `pattern-to-instantiate`, in the latter case, the first value is `nil`

.

Any subgoals that match the object base will only find objects from the current inferencing state.

(any '(?x is in (1 2 3)) '(member ?x (1 2 3)))

returns `(1 IS IN (1 2 3)), T`

.

(any '(?truck is a truck) '(truck ?truck))

returns `(#<TRUCK TRUCK5> IS A TRUCK), T`

.

*KnowledgeWorks and Prolog User Guide (Unix version) - 01 Dec 2021 19:35:49*