【发布时间】:2011-09-17 01:04:37
【问题描述】:
flatten([A|B],R):- (islist(A)->(flatten(A,R1),R=R1);(write(A),append([A],R1,R))), flatten(B,R1).
flatten(X,X).
islist([_|_]).
这是我写的代码,但我有一个奇怪的问题..
我明白了
257 ?- flatten([1,[],2,[3],[3,[3,5]]],R).
1[]23335335
R = [1, [], 2, [3], [3, [3, 5]]] .
虽然写入的数字不是列表,但它们被附加为 list:S...
【问题讨论】:
-
请改进代码的格式。事实上,它是不可能阅读的。
-
+1。不知道为什么有人给这个问题-1。有示例代码和输出表明不需要的行为。
标签: prolog