Hätte eine frage zu Racket aber finde kein Forum dafür. Falls mir trotzdem jemand helfen kann wäre ich dankbar
Also ich will eine Funktion erstellen die eine Liste mit Zahlen und eine Zahl aufnimmt.
Ich gehe bei dem beispiel davon aus dass die zahl irgendwo in der liste vorkommt.
Sagen wir die liste ist (5 4 3 2 1) und die zahl ist 2 dann will ich, dass die Zahl der liste hinzugefügt wird und zwar genau hinter der Zahl mit der sie equal ist. Also sollte mein output dann (5 4 3 2 2 1) sein.
Hier mein Problem:
Wenn hier die liste wie oben (5 4 3 2 1) und die zahl 2 ist dann bekomme ich als Return eine liste mit (2 2 1) . Das liegt daran dass ich durch die Rekursion jedes mal das erste Element der Eingabeliste verliere und dann nicht mehr darauf zugreifen kann. Aber es gibt meines wissens nach in Racket keine andere Möglichkeit eine liste zu "filtern" und ich kann die verlorenen Elemente auch nicht zwischenspeichern bevor ich sie verliere soweit ich weiß.
Ich bin noch recht neu was Racket angeht. Hoffe dass mir hier jemand helfen kann.
Danke fürs lesen
Also ich will eine Funktion erstellen die eine Liste mit Zahlen und eine Zahl aufnimmt.
Ich gehe bei dem beispiel davon aus dass die zahl irgendwo in der liste vorkommt.
Sagen wir die liste ist (5 4 3 2 1) und die zahl ist 2 dann will ich, dass die Zahl der liste hinzugefügt wird und zwar genau hinter der Zahl mit der sie equal ist. Also sollte mein output dann (5 4 3 2 2 1) sein.
Hier mein Problem:
Code:
(define (update-list my-list number)
(cond [(= (first my-list) number)
(cons (first my-list) (cons number (rest my-list)))]
[else
(update-list (rest my-list) number)]))
Wenn hier die liste wie oben (5 4 3 2 1) und die zahl 2 ist dann bekomme ich als Return eine liste mit (2 2 1) . Das liegt daran dass ich durch die Rekursion jedes mal das erste Element der Eingabeliste verliere und dann nicht mehr darauf zugreifen kann. Aber es gibt meines wissens nach in Racket keine andere Möglichkeit eine liste zu "filtern" und ich kann die verlorenen Elemente auch nicht zwischenspeichern bevor ich sie verliere soweit ich weiß.
Ich bin noch recht neu was Racket angeht. Hoffe dass mir hier jemand helfen kann.
Danke fürs lesen