所以我在 SWI-Prolog 中做一些 Prolog,我遇到了一些障碍。给定一个输入列表,我必须创建一个多维数据集列表。我目前拥有的代码是
cubes([Head|Tail],Cubes) :-
cubes([Head|Tail],Cubes,[]).
cubes([Head|Tail],Cubes,ActualCubes) :-
X is Head^3,
append(ActualCubes,[X],NewCubes),
cubes(Tail,Cubes,NewCubes).
cubes([Tail],Cubes,ActualCubes) :-
X is Tail^3,
append(ActualCubes,[X],NewCubes),
Cubes is NewCubes.
当我运行它时,它会给出一个错误,特别是......
ERROR: '.'/2: Type error: `[]' expected, found `[8]' ("x" must hold one character)
Exception: (7) cbList([1, 2], _G296, []) ? creep
我不完全确定为什么会发生这个错误,但它似乎发生在最后一行,Cubes is NewCubes。任何帮助表示赞赏:)