所以我在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.
Run Code Online (Sandbox Code Playgroud)
当我运行它时会出错,具体而言......
ERROR: '.'/2: Type error: `[]' expected, found `[8]' ("x" must hold one character)
Exception: (7) cbList([1, 2], _G296, []) ? creep
Run Code Online (Sandbox Code Playgroud)
我不完全确定为什么会出现这个错误,但它似乎发生在最后一行,Cubes是NewCubes.任何帮助表示赞赏:)