Prolog Nim Game - 超出本地堆栈错误
我最近一直在做一些Prolog。我读过Prolog的艺术书。他们在那里有一个Nim游戏实现。所以我把它重写为SWI-Prolog,除了本地堆栈错误之外,一切似乎都很好。
调试后我发现它似乎永远循环在程序的这一部分:
nim_sum([N|Ns],Bs,Sum):-
binary(N,Ds), nim_add(Ds,Bs,Bs1), nim_sum(Ns,Bs1,Sum).
nim_sum([],Sum,Sum).
nim_add(Bs,[],Bs).
nim_add([],Bs,Bs).
nim_add([B|Bs],[C|Cs],[D|Ds]):-
D is (B+C) mod 2, nim_add(Bs,Cs,Ds).
有没有人遇到过这种问题?对于某些替代实施的任何建议?
没有找到相关结果
已邀请:
1 个回复
旅牢斯讲
同样,这假设二进制/ 2是确定性的,可能是将整数(非负?)转换为0和1的列表,首先是最低有效位。