DCG 加倍计数
DCG doubling a count
我正在玩 DCG,我有这段代码。这将显示 x
个 0
和 x
个 A
。
y --> test(Count), as(Count).
test(0) --> [].
test(succ(0)) --> [0].
test(succ(succ(Count))) --> [0], test(Count), [0].
as(0) --> [].
as(succ(Count)) --> [a],as(Count).
我的问题是如何传递仿函数以使 A
的数量是 0
的两倍。这是我尝试过的方法,但它不起作用。
y --> test(Count), as(add(Count,Count,R)).
如果我只想添加一个,这就是所做的,而且效果很好。
y --> test(Count), as(succ(Count)).
y --> test(Count), as(Count), as(Count).
或
y --> test(Count), {add(Count,Count,DCount)}, as(DCount).
或者您可以将 succ
加倍以获得 test
y --> test(Count), as(Count).
test(0) --> [].
test(succ(succ(Count))) --> [0], test(Count).
as(0) --> [].
as(succ(Count)) --> [a], as(Count).
我正在玩 DCG,我有这段代码。这将显示 x
个 0
和 x
个 A
。
y --> test(Count), as(Count).
test(0) --> [].
test(succ(0)) --> [0].
test(succ(succ(Count))) --> [0], test(Count), [0].
as(0) --> [].
as(succ(Count)) --> [a],as(Count).
我的问题是如何传递仿函数以使 A
的数量是 0
的两倍。这是我尝试过的方法,但它不起作用。
y --> test(Count), as(add(Count,Count,R)).
如果我只想添加一个,这就是所做的,而且效果很好。
y --> test(Count), as(succ(Count)).
y --> test(Count), as(Count), as(Count).
或
y --> test(Count), {add(Count,Count,DCount)}, as(DCount).
或者您可以将 succ
加倍以获得 test
y --> test(Count), as(Count).
test(0) --> [].
test(succ(succ(Count))) --> [0], test(Count).
as(0) --> [].
as(succ(Count)) --> [a], as(Count).