這是第看起來像Prolog如何評估此條款?
splits(L, ([],L)).
splits([X|L],([X|S],E)):- splits(L, (S,E)).
分裂應該在每一個可能的點分成兩個部分列表L,而應返回做好一切準備。 可能的查詢是
split([1,2,3],Res)。
結果是
Res = ([], [1,2,3]);
Res = ([1], [2,3]);
Res = ([1,2], [3]);
Res = ([1,2,3], []);
No
我的問題是,我不明白是如何拆分工作。我爲上述案例寫下了它,但我仍然不知道。如果有人能解釋我,我將不勝感激。
什麼是你不明白? – 2015-04-04 21:10:59
@PaulButcher:我不明白的是,它一般如何工作。我一步一步寫下來,但我不知道* Res *是如何產生的。 – tumbler 2015-04-04 21:24:30
@PaulButcher:對於S和E的例子相當混亂。 – tumbler 2015-04-04 21:26:47