小编Wha*_*nny的帖子

在Prolog中计算多维数据集列表

所以我在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.任何帮助表示赞赏:)

prolog clpfd

1
推荐指数
1
解决办法
1811
查看次数

标签 统计

clpfd ×1

prolog ×1