Re: Flatten, question
Hartmut Lange <[email protected]>
| Newsgroups | gmane.comp.gnu.prolog.general |
|---|---|
| Message-ID | <[email protected]> |
Thank you very much for your hint, great!
Hartmut
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.
>
> 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
>> [email protected]
>> http://lists.gnu.org/mailman/listinfo/users-prolog