标签: prolog
当我应用此查询时:
?长度(P,_)。
P = [] ? ; P = [_] ? ; P = [_,_] ? ; P = [_,_,_] ? ; P = [_,_,_,_] ?
我有那个结果。如何运作?
答案 0 :(得分:2)
通过选择点。谓词具有多个子句时,大约会创建一个选择点:
length([], 0). length([_|L], M) :- length(L, N), M is N+1.
然后,这些选择点由Prolog解释器给出不同的推导。这是Tau Prolog sandbox中的派生屏幕截图:
请稍等,我想我需要提出一个issue,此派生屏幕截图显示的内容太多了。合成(=)/ 2和控件(,)/ 2。