我系统中的一个示例事实可能是(trip 4 1330 650 boston chicago ... los_angeles)
,最后加上任意数量的城市。我知道我可以使用多字段通配符($?
)匹配任意长度,但是如何断言具有任意长度的事实?我想要做的是匹配上面表格中的一个事实,然后将另一个城市附加到它的末尾。有可能这样做吗?
答案 0 :(得分:0)
是的,这是可能的。您可以使用$?
匹配事实的0个或多个部分。要在RHS中使用它,您可以使用$?variable_name
将其分配给变量。
要将另一个城市追加到最后,您可以将您的旅行事实与(trip ?arg1 ?arg2 ?arg3 $?cities)
相匹配,并在最后与该城市确定一个新的旅行事实:(trip ?arg1 ?arg2 ?arg3 $?cities new_city)
。