Hinweis: Ich mache das für Hausaufgaben. Ich suche nicht nach dem Algorithmus, um mein Problem zu lösen, ich versuche nur zu verstehen, wie Scheme funktioniert.Rückgabe des kleinsten Elements in einer Liste in Schema
Ich bin neu zu Schema und versuche, ein kleines Programm zu schreiben, um das kleinste Element in einer Liste zu finden. Das Programm arbeitet seit dem, da es die richtige Antwort findet (also ist die Logik etwas gesund), aber ich weiß das nur, weil ein Fehler auftaucht, der versucht, meine Antwort als eine Funktion zu behandeln und sie zu nennen.
(DEFINE (startmin mylist)
(
(repeatmin (CAR mylist) (CDR mylist))
))
(DEFINE (repeatmin curmin mylist)
(
(IF (NULL? mylist) ;If the list is empty
;This is where I'm at a loss. I want a way for this value to be
;sent out once the list is empty
curmin ;return the current minimum
(IF (< curmin (CAR mylist)) ;if the current minimum is less than the head of the list
(repeatmin curmin (CDR mylist)) ;recurse with curmin
(repeatmin (CAR mylist) (CDR mylist)) ;otherwise recurse with the head of the list.
)
)
))
Ich bin wirklich ratlos, wie ich den Wert zu erhalten, einmal gefunden, wieder aus der Rekursion, wie es versucht, hält den Wert als eine Funktion zu behandeln.
[Sylwester Antwort] (http://Stackoverflow.com/a/43430528/7872323) repariert es für mich. –
Sie sollten Ihre Frage nicht manuell als "[gelöst]" markieren. Akzeptiere Sylwesters Antwort, indem du auf sein graues Häkchen-Symbol klickst. Die Miniaturen der Frage werden automatisch grün markiert. – suchtgott