Hi, wenn ich in Scheme auf and mehrere Parameter anwende funktioniert das wie erwartet. Aber wenn ich apply nehme bekomme ich einen Fehler:
(and #t #t #t #f) -> #f
(apply and '(#t #t #t #f)) -> and: bad syntax in: and
Weiss jemand woran das liegt?
Apply muss eine Funktion übergeben bekommen, and ist aber keine Funktion.
achso, dann macht das ja auch Sinn ;)
Danke
Kann man in Aufgabe 3.2 (SE3 FP) mit einer curry-Funktion weiterkommen? Wenn nicht: hat mal jemand einen Denkanstoß? Die kleinste Zahl zu ermitteln ist ja recht einfach (apply min (map cdr *Lagerbestand*)). Aber wie bekommt man dazu jetzt den passenden Wert aus der Assoziationsliste? Der Bestand wird ja bestimmt nicht eindeutig sein…..
Kann man in Aufgabe 3.2 (SE3 FP) mit einer curry-Funktion weiterkommen? Wenn nicht: hat mal jemand einen Denkanstoß? Die kleinste Zahl zu ermitteln ist ja recht einfach (apply min (map cdr *Lagerbestand*)). Aber wie bekommt man dazu jetzt den passenden Wert aus der Assoziationsliste? Der Bestand wird ja bestimmt nicht eindeutig sein…..
Wie lautet denn die Aufgabe genau? Willst du den CAR zu dem passenden Minimalwert aus *LARGERBESTAND* haben? Da würde ich dir eher empfehlen, MIN per Hand zu implementieren machen (besonders hübsch wäre, wenn du dazu FOLD verwendest), und dir nicht nur den bisherigen Minimalwert, sondern auch gleich den dazugehörigen Key merkst…
Wir haben diese Datenstruktur:
(define *Lagerbestand*
'( (Gummibaerchen . 100)
(Lakritzschnecken . 30)
(Wundertueten . 300)
(Brausepulver . 1000)
(Ufos . 150)
(Yps . 20)
(Schokolade . 350)))
und sollen die Ware mit der geringsten Anzahl ermitteln. Aber da es thematisch gerade um Funktionen höherer Ordnung geht, denke ich, dass wir bestehende Funktionen höherer Ordnung anwenden sollen. Ansonsten hätt ichs mir auch schon iterativ zusammengebastelt….
Wir haben diese Datenstruktur:
(define *Lagerbestand*
'( (Gummibaerchen . 100)
(Lakritzschnecken . 30)
(Wundertueten . 300)
(Brausepulver . 1000)
(Ufos . 150)
(Yps . 20)
(Schokolade . 350)))
und sollen die Ware mit der geringsten Anzahl ermitteln. Aber da es thematisch gerade um Funktionen höherer Ordnung geht, denke ich, dass wir bestehende Funktionen höherer Ordnung anwenden sollen. Ansonsten hätt ichs mir auch schon iterativ zusammengebastelt….
Ein iterativer Algorithmus ohne Seiteneffekte wird schwierig. Ein iterativer Prozess dagegen nicht sonderlich. Ich empfehle allerdings weiterhin FOLD :-)