2
我用这个函数:运营商,该列表
f(V):-V is [1,2,3,4,5].
但我得到一个错误:
ERROR: '.'/2: Type error: `[]' expected, found `[2,3,4,5]' ("x" must hold one character)
什么需要修正?
我用这个函数:运营商,该列表
f(V):-V is [1,2,3,4,5].
但我得到一个错误:
ERROR: '.'/2: Type error: `[]' expected, found `[2,3,4,5]' ("x" must hold one character)
什么需要修正?
is/2
中缀运算符用于评估算术表达式。
看来你希望统一变量V与非算术表达式(在这种情况下是一个列表),所以你应该使用相等的运算符(=
)。
f(V):- V = [1,2,3,4,5].
或可替换地在程序的头部直接统一:
f([1,2,3,4,5]).
我觉得你的代码表明,F/1间小组数字列举的需要。如果这是真的,你应该在调用f(X)
X时,会结合(在回溯)中列出的值写入,而不是
f(V) :- member(V, [1,2,3,4,5]).
然后。
取决于。你期望代码做什么? –