2012-04-08 19 views
2

今日、「Prologロジック」を練習しているので、ここで別のスレッドでこの未解決の問題が見つかったので、どのように動作するのか疑問に思っていました。SWI-Prologの要素を増やす

増分毎にその深さによってリストの要素、例えば インクリメント([0,0、[0]]、[1,1、[2]]) - >真

私ほとんど私はこの言語が好きだと思った... :) それは可能なものですか?ありがとう。

+0

をテストするには、あなたがそれを取得し、質問に答えるならば、私はきっとあなたをupvoteよ:) – CapelliC

+0

その可能性が、用をそれは短い述語ではないことを確認してください – whd

+0

以下の4つの節がかなり短いようです。 –

答えて

2

次のコードの仕事ん:

increment(X,Y):- increment(X,0,Y). 
increment([],_,[]) :- !. 
increment([X|Xs],N,[Y|Ys]) :- !, N1 is N+1, 
           increment(X,N1,Y), increment(Xs,N,Ys). 
increment(X,N,Y):- Y is X+N. 

はちょうどそれに

?- increment([0,0,[0]],X). 
X = [1, 1, [2]]. 

?- increment([0,0,[0,[0,0]]],X). 
X = [1, 1, [2, [3, 3]]]. 
+0

うわー、スマート!私はあなたに電子メールを送った@Alexander –

+0

私は今夜それに答えるつもりです、Nirbert ;-) –

関連する問題