Page 1 of 1

Programmeer paradigma's

Posted: Sun Aug 08, 2010 4:54 pm
by Sebastiaan
op het vorig examen van programmeer paradigma's was er een oefening.

In Prolog.

compress ['a','a','a','a','b','c','c','a','a','d','e','e','e']
geeft dan als resultaat : ['a','b','c','a','d','e']

ik heb al ff der aan bezig gezeten, maar ni echt een oplossing gevonden. Iemand die wel een oplossing heeft?

Re: Programmeer paradigma's

Posted: Sun Aug 08, 2010 6:56 pm
by Pieter Belmans
En je bent op zoek naar de Prologimplementatie van die operatie, of je (God forbid) begrijpt niet wat ze doet?

Re: Programmeer paradigma's

Posted: Sun Aug 08, 2010 7:16 pm
by Sebastiaan
Pieter Belmans wrote:En je bent op zoek naar de Prologimplementatie van die operatie, of je (God forbid) begrijpt niet wat ze doet?
op zoek naar Prologimplementatie om te ontleden.

Re: Programmeer paradigma's

Posted: Sun Aug 08, 2010 7:37 pm
by Sebastiaan
Sebastiaan wrote:
Pieter Belmans wrote:En je bent op zoek naar de Prologimplementatie van die operatie, of je (God forbid) begrijpt niet wat ze doet?
op zoek naar Prologimplementatie om te ontleden.
ni gedacht dat da zo easy te googlen was.

compress([],[]).
compress([X],[X]).
compress([X,X|Xs],Zs) :- compress([X|Xs],Zs).
compress([X,Y|Ys],[X|Zs]) :- X \= Y, compress([Y|Ys],Zs).

voor de mensen die ze ook zoeken hier staat ze. en this eigenlijk poepsimpel :S

Re: Programmeer paradigma's

Posted: Sun Aug 08, 2010 9:00 pm
by nasam
Sebastiaan wrote:compress([],[]).
compress([X],[X]).
compress([X,X|Xs],Zs) :- compress([X|Xs],Zs).
compress([X,Y|Ys],[X|Zs]) :- X \= Y, compress([Y|Ys],Zs).
Ik had

Code: Select all

compress([], []).
compress([X], [X]).
compress([X,X|T], C) :- compress([X|T], C), !.
compress([X,Y|T], [X|C]) :- compress([Y|T], C).
Het verschil zit hem in de voorlaatste regel (gebruik maken van !) zodat je in de volgende regel geen expliciete niet gelijk aan moet doen.

(Eigenlijk had ik mijn versie, maar dan zonder de !, die dus meerdere resultaten teruggaf waarvan alleen de eerste juist was)