这是第看起来像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