HA3 7

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Beitrag von Osterlaus »

Was meinst du mit Problem? Hast du wirklich den Aufruf so eingegeben, wie du ihn hier hingeschrieben hast? Dann ists natürlich ein Fehler, denn ' wirkt nur auf (1 2), und was soll dann mit (3 4 5) passieren?

BeatriceFriess
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 1. Okt 2007 15:55
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von BeatriceFriess »

Ne sorry, war verschrieben...
Das sollte heißen
(flatten-once '( ( 1 2) ( 3 4 5) ) )
Genauso entsprechend dem Beispiel:
(flatten-once '( (1) ( 2 3)))

Nur das bei dem vorgegebenen Beispiel (list 1 2 3) rauskommt, aber bei dem, was ich selber ausprobiert habe (das obendrüber) geht es nicht...

Benutzeravatar
taufrisch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 107
Registriert: 30. Sep 2007 02:42
Wohnort: 127.0.0.1

Beitrag von taufrisch »

Vielleicht hilft dir enumerate-tree aus T5 S. 116 weiter. Es macht die Strukturen allerdings ein wenig zu flach...

Code: Alles auswählen

(define (enumerate-tree tree) 
  (cond 
    [(empty? tree) empty] 
    [(not (cons? tree)) (list tree)] 
    [else 
     (append (enumerate-tree (first tree)) 
             (enumerate-tree (rest tree)))]) 
  )

BeatriceFriess
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 1. Okt 2007 15:55
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von BeatriceFriess »

Danke^^
Jetzt gehts...
Es ging wirklich nur um das ( not (cons? tree)) jetzt geht es.. und vor allem leuchtet es ein...

Christian.
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 6. Aug 2007 22:38

Beitrag von Christian. »

juhuuu...

Code: Alles auswählen

(perm '(3 2 1))
(list (list 3 2 1) (list 2 3 1) (list 2 1 3) (list 3 1 2) (list 1 3 2) (list 1 2 3))
also ich fand die schon gut knifflig...ohne den ein oder anderen tipp waere ich bestimmt auf grund gelaufen.

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Beitrag von Osterlaus »

Die Perm-Funktion selbst habe ich noch nciht, aber ansonsten gings bei mir recht gradlinig bisher. Und außer dem Tipp für insert-at mit dem Runterzählen hab ichs auch recht gut ohne Hilfe geschafft. Aber vielleicht kommt der Hammer ja bei perm noch ;)

BeatriceFriess
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 1. Okt 2007 15:55
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von BeatriceFriess »

Hallo, noch einer on, der mir mal helfen kann??
Hab eben noch einen Fehler in meiner Perm Prozedur gefunden...
und jetzt hab ich folgende Ausgabe (nach ausprobieren)

(list (list 'a 42 'true) (list 42 'a 'true) (list 42 'true 'a) (list 42 'true) (list 'true 42) (list 'true))

Queltest dazu

Code: Alles auswählen

(define (perm lox) 
      (cond 
        [(empty? lox) empty]
        [else (append (insert-everywhere (first lox) (rest lox)) 
              (map flatten-once (perm (rest lox))))])) 

Antworten

Zurück zu „Archiv“