[Top][All Lists]

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

Re: Flatten, question

From: Hartmut Lange
Subject: Re: Flatten, question
Date: Fri, 31 Oct 2008 17:14:06 +0100
User-agent: Thunderbird (Windows/20080914)

Thank you very much for your hint, great!

Lindsey Spratt wrote:
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.


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

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

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

reply via email to

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