Logik:Klausuren/04.11.2004/4. Aufgabe

Aus Tudwiki
Wechseln zu: Navigation, Suche

1. Aufgabenstellung

Schreiben Sie Prolog-Programme $ trans /\,2 $ und $ laenge /\,2 $ die folgendes leisten:


a)

$ laenge /\,2 $ ermittelt die Laenge einer liste .

z.B. soll der Aufruf $ ?-laenge (\left[\,a,b,c,d\,\right]\,,L)\,. $ das Ergebnis $ L=4\, $ liefern.


b)

$ trans /\,2 $ transformiert eine Liste von einfachen Termen in eine Liste , deren Elemente einelementige Listen dieser Terme sind.

z.B. soll der Aufruf $ ?-trans ([a,b,c,d]\,,E)\,. $ das Ergebnis $ E=\left[\;[a]\,,[b]\,,[c]\,,[d]\;\right] $ liefern.

2. Lösung

a)

$ laenge\,([]\,,0). $

$ laenge\,([K|R]\,,E):-\,laenge\,(R\,,E1),\ E\ is\ E1+1. $


b)

$ trans\,([\ ]\,,[\ ]). $

$ trans\,([K|R]\,,E):-\,trans\,(R\,,E1),\ append([\,[K]\,],\,E1,\,E). $

3. Lösungsweg

4. Alternativen/Diskussion/Hinweise etc.


zum Prolog-Testat 04.11.2004
Kategorie Prolog-Aufgaben