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]).
然後。
取決於。你期望代碼做什麼? –