2010-12-09 4 views
0

Un exemple de fait dans mon système pourrait être (trip 4 1330 650 boston chicago ... los_angeles) avec un certain nombre de villes clouées à la fin. Je sais que je peux correspondre à des longueurs arbitraires en utilisant le caractère générique multifield ($?), mais comment puis-je affirmer un fait avec une longueur arbitraire? Ce que je veux faire est correspondre à l'un des faits dans le formulaire ci-dessus, puis ajouter une autre ville à la fin de celui-ci. Est-il possible de faire cela?CLIPS: Affirmer des faits de longueur arbitraire

Répondre

0

Oui, c'est possible. Vous pouvez faire correspondre 0 ou plusieurs parties d'un fait en utilisant $?. Pour l'utiliser dans le RHS, vous pouvez l'affecter à une variable en utilisant $?variable_name.

Pour ajouter une autre ville sur la fin, vous pouvez assortir votre fait de voyage avec (trip ?arg1 ?arg2 ?arg3 $?cities) et affirmer un nouveau fait de voyage avec la ville sur la fin: (trip ?arg1 ?arg2 ?arg3 $?cities new_city).

Questions connexes