我想划分给定列表的长度.我知道如何分割,我知道如何获得List的长度,但使用两个谓词对我来说都不起作用.这是我得到的:
halflength(List,Halflength) :- length([List,Length]), Halflength is Length/2.
[trace] ?- halflength([a,b,c],Halflength).
Call: (7) halflength([a, b, c], _G15025) ? creep
Call: (8) length([[a, b, c], _G15108]) ? creep
ERROR: halflength/2: Undefined procedure: length/1
ERROR: However, there are definitions for:
ERROR: length/2
Exception: (8) length([[a, b, c], _G15108]) ? creep
Exception: (7) halflength([a, b, c], _G15025) ? creep
Run Code Online (Sandbox Code Playgroud)
这里:
Undefined procedure: length/1
Run Code Online (Sandbox Code Playgroud)
你length
只用一个参数调用一个列表:
length([List,Length])
Run Code Online (Sandbox Code Playgroud)
这应该是:
length(List, Length)
Run Code Online (Sandbox Code Playgroud)