users-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Flatten, question


From: Lindsey Spratt
Subject: Re: Flatten, question
Date: Thu, 30 Oct 2008 22:54:21 -0400

Use append(FlatHead, FlatTail, List) instead of concat(...).

concat/3 is for combining atoms to create a new atom. append/3 is for appending lists to create a new list: more generally it is true if the third argument is the list that is the second argument list appended to the first argument list.

Lindsey

On Oct 30, 2008, at 2:13 PM, Hartmut Lange wrote:

Everybody,
is somebody here who can help me in this small algorithm.
Why do I get
 atom_concat/3: Type error: `atomic' expected, found `[g]'
 atom_concat/3: Type error: `atomic' expected, found `[e]'
in the line where flatten1(...) is called with the list of a,b,c...
What's wrong with that... hmm? I found it in the Prolog book of Bratko, excercise 3.11
I am using SWI-Prolog 5.6
Regards,


flatten1([Head|Tail], List) :-
   flatten1(Head, FlatHead),
   flatten1(Tail, FlatTail),
   concat(FlatHead,FlatTail, List).

flatten1([], []).
flatten1(X, [X]).

:- flatten1([a,b,c,e,f,g], List),
  write('Flat List:'), write(List).

:- flatten1([a,b,[c,e],f,g], List),
  write('Flat List:'), write(List).


_______________________________________________
Users-prolog mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/users-prolog





reply via email to

[Prev in Thread] Current Thread [Next in Thread]