Alles anzeigenMoin allerseits,
ich bin jetzt ersti und studiere u.a. Info.
Bis jetzt komme ich auch wunderbar voran und es macht auch alles Spaß.
Nun haben wir eine neue Hausübung bekommen, auf die ich nicht klar komme.
Die erste Teilaufgabe ist folgende:Es ist ein Template vorgegeben, dort ist eine Einkaufsliste gegeben (die schon definiert ist).
Das sieht so aus:
(define some-products
(list
(make-product 'produktname preis 'marke) ;;preis ist hierbei eine zahldie Liste besteht aus mehreren Produkten logischerweise und die Aufgabe ist es, ein Programm zu entwickeln, dass bei Eingabe den geringsten Wert (Preis) ausspuckt.
Ich habe mir bisher gedacht, es in folgende Schritte einzuteilen:
-extrahieren der Preise (also der Nummern) aus der gegeben Liste und eine neue Liste zu erstellen nur mit den Nummern
-die neue Liste einfach sortieren
-aus der sortierten Liste den geringsten Wert ausspucken lassen.Außerdem gilt es während dieser Aufgabe 1 folgende Tests mit dem Programm zu bestehen:
(check-expect (= (lowest-price empty) +inf.0) true) ;;Das ist mir klar, ich weiß nur nicht, wie es schreiben soll, damit ich darauf komme
(check-expect (lowest-price (list (make-product 'P1 2 'S1) (make-product 'P1 5 'S2))) 2) ;;Das ist mir klarMein Hauptproblem ist eigentlich schon direkt der erste Schritt.
Wie extrahiere ich die Nummern aus der Liste?Weiter als
(define (pricelist some-products)
(cond
[(empty? (...))Bin ich noch nicht
Achja, ich weiß, dass um den ersten Test zu bestehen, es so aussehen muss:
(...) [(empty? (...) +inf.0)] (...) ;;Also, wenn empty? erfüllt ist, soll es eben +inf.0 ausspucken. Das Problem ist eben, dass ich nicht weiß, was ich hinter dem empty? schreiben soll
Danke für jede Hilfe!