增加SWI Prolog中的元素

增加SWI Prolog中的元素,prolog,increment,Prolog,Increment,好吧,因为我今天在练习“Prolog逻辑”,我在这里的另一个线程中发现了这个未解决的问题,我想知道它是如何工作的 按深度递增列表中的每个元素,例如 增量([0,0,[0]],[1,1,[2]])->真值 我几乎以为我喜欢这种语言……:) 这样可能吗?谢谢。以下代码执行此操作: increment(X,Y):- increment(X,0,Y). increment([],_,[]) :- !. increment([X|Xs],N,[Y|Ys]) :- !, N1 is N+1,

好吧,因为我今天在练习“Prolog逻辑”,我在这里的另一个线程中发现了这个未解决的问题,我想知道它是如何工作的

按深度递增列表中的每个元素,例如 增量([0,0,[0]],[1,1,[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]]].

如果你明白了并回答了问题,我肯定会投票给你:)这是可能的,但肯定不会很短,因为下面的条款看起来很短哇,聪明!我给你发了一封电子邮件,先生@Alexander我今晚会尽力回复的,先生@Norbert;-)