最近プロローグをやっています。そしてThe Art Of Prologの本を読みました。そこには Nim ゲームの実装があります。だから私はそれをSWI-Prologに書き直しました。そして、このOut of local stackエラー以外はすべて問題ないようです。デバッグ後、プログラムのこの部分で永遠にループしているように見えることがわかりました。
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).
誰かがこの種の問題に遭遇しましたか?代替実装の提案はありますか?