Thread View: pl.comp.lang.funkcyjne
5 messages
5 total messages
Started by Grzegorz Rumatowski
Wed, 22 Oct 2003 19:32
Problem z listami w PROLOGU
Author: Grzegorz Rumatowski
Date: Wed, 22 Oct 2003 19:32
Date: Wed, 22 Oct 2003 19:32
23 lines
1460 bytes
1460 bytes
Hej!
Domyślam się, że to raczej NTG, ale sprobuję mimo wszystko.
Mam problem z listami w PROLOGu. Zdefiniowałem predykat odwroc w
następujący sposób:
odwroc(L,R):-
odwroc(L,[],R).
odwroc([],R,R).
odwroc([G|O],N,R):-
odwroc(O,[G|N],R).
Długo szukałem rozwiązania na procedurę, która odwraca również
listy zagnieżdżone. Niestety nic nie znalazłem.
Może ktoś ma jakiś pomysł na rozwiązanie problemu ???
Grzechu
--
G.R.Z.E.C.H.U.: General Robotic Zombie Engineered
for Calculation and Hazardous Utility
http://republika.pl/grumatow/
Re: Problem z listami w PROLOGU
Author: Piotr Dembiński
Date: Wed, 22 Oct 2003 20:08
Date: Wed, 22 Oct 2003 20:08
13 lines
1239 bytes
1239 bytes
Grzegorz Rumatowski <grumatow@ZERO__SPAMpoczta.onet.pl> writes:
[...]
> Może ktoś ma jakiś pomysł na rozwiązanie problemu ???
no ja bym to tak napisał:
odwroc([H|T], B) :-
odwroc(H,X),
odwroc(T,Y),
append(Y, [X], B).
odwroc(X,X).
Re: Problem z listami w PROLOGU
Author: Grzegorz Rumatowski
Date: Wed, 22 Oct 2003 20:28
Date: Wed, 22 Oct 2003 20:28
16 lines
1404 bytes
1404 bytes
On Wed, 22 Oct 2003 22:08:26 +0200, Piotr Dembiński wrote: > odwroc([H|T], B) :- > odwroc(H,X), > odwroc(T,Y), > append(Y, [X], B). > odwroc(X,X). O wersji z append myślałem, ale gdzieś w którymś tutorialu czytałem, że tak nie powinno się robić. Grzechu -- G.R.Z.E.C.H.U.: General Robotic Zombie Engineered for Calculation and Hazardous Utility http://republika.pl/grumatow/
Re: Problem z listami w PROLOGU
Author: Maciek Makowski
Date: Wed, 22 Oct 2003 21:35
Date: Wed, 22 Oct 2003 21:35
25 lines
1706 bytes
1706 bytes
Grzegorz Rumatowski wrote: >>odwroc([H|T], B) :- >> odwroc(H,X), >> odwroc(T,Y), >> append(Y, [X], B). >>odwroc(X,X). > > O wersji z append myślałem, ale gdzieś w którymś tutorialu czytałem, > że tak nie powinno się robić. No, nie powinno. Lepiej zrobić z akumulatorem: odwroc(L, R) :- odwroc(L, [], R). odwroc([H|T], A, R) :- odwroc(T, [H|A], R). albo na listach różnicowych: odwroc(L, R) :- odwroc1(L, R--[]). odwroc1([H|T], R--Z) :- odwroc1(T, R--[H|Z]). -- Maciek "Chantons et buvons, a ce flacon faisons la guerre"
Re: Problem z listami w PROLOGU
Author: Piotr Dembiński
Date: Thu, 23 Oct 2003 22:28
Date: Thu, 23 Oct 2003 22:28
8 lines
1246 bytes
1246 bytes
Grzegorz Rumatowski <grumatow@ZERO__SPAMpoczta.onet.pl> writes: [...] > O wersji z append myślałem, ale gdzieś w którymś tutorialu czytałem, > że tak nie powinno się robić. :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads