flatten([A|B],R):- (islist(A)->(flatten(A,R1),R=R1);(write(A),append([A],R1,R))), flatten(B,R1).
flatten(X,X).
islist([_|_]).
這是我寫的代碼,但我有奇怪的問題..Prolog的扁平化列表
我得到
257 ?- flatten([1,[],2,[3],[3,[3,5]]],R).
1[]23335335
R = [1, [], 2, [3], [3, [3, 5]]] .
雖然從寫沒有列出他們被追加爲列表中的號碼:S ...
請改善您的代碼的格式。事實上,這是不可能讀的。 – Kaarel 2011-06-17 12:17:26
+1。不知道爲什麼有人給這個問題-1。有示例代碼和輸出表明不需要的行爲。 – z5h 2011-06-20 15:37:34