FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

LISP: Dr.Scheme: aufgabe

LISP: Dr.Scheme: aufgabe 2003-08-28 18:04
Anonymer User
Hi

ich bin noch recht unerfahren mit dr.scheme und lisp
und übe grade n bischen ..
ich will die elemente einer liste in umgekehrter reihenfolge ausgeben..
ich habe ein programm, das mir beliebige elemente ans ende der liste anhängt
(define (mitletztem element liste)
(cond ((null? liste) (list element))
(else (cons (car liste) (mitletztem element (cdr liste))))))

und nun zum umkehren ..
(define (umgekehrt liste)
(cond ((null? liste) liste)
(else (mitletztem (car liste) (umgekehrt (cdr liste))))))

so das beides funzt und ich hab mich riesig gefreut
und nun will ich auch die in der liste enthaltenen
unterlisten umgekehrt wiedergebn aber das klappt nich so

(define (umgekehrttief liste)
(cond ((null? liste) liste)
((list? (car liste)) (list (umgekehrttief (car liste))))
(else (mitletztem (car liste) (umgekehrttief (cdr liste))))))

hoffe auf hilfe …
danke
bye

Re: LISP: Dr.Scheme: aufgabe 2003-08-28 18:38
Zaphod
Das ist schon fast richtig gewesen, nur dass du bei
((list? (car liste)) (list (umgekehrttief (car liste))))
die Restliste unterschlägst, die also infolge dessen nicht weiter bearbeitet wird.

(define (umgekehrttief liste)
(cond ((null? liste) liste)
((list? (car liste)) (mitletztem (umgekehrttief (car liste)) (umgekehrttief (cdr liste))))
(else (mitletztem (car liste) (umgekehrttief (cdr liste))))))

So müsste das klappen.

Re: LISP: Dr.Scheme: aufgabe 2003-08-31 11:36
Anonymer User
VIelen dank nun funzt es *freu*