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
0
A
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)
.