SCHEME Multiplikation mit einer Liste

M

Mikrowelle

Hallo

Ich will einer funktion eine liste und eine zahl übergeben diese zahl soll dann mit jedem element aus der liste multipliziert werden, die ergebnisse sollen dannals eine liste wiedergegeben werden.

z.B. ( f '(1 2 3) 2 ) --> '( 2 4 6)

kann mir jemand ein rekursives beispiel zeigen wie das umgesetzt wird?
 
Dafür ist gar keine Rekursion notwendig:
Code:
//Pseudocode
Liste = (1, 2, 3, 4, 5);
Zahl = 3;
Funktionsname(Liste, Zahl){
  for( i = 0; i < AnzahlDerElementeInListe; i++ ){
    Liste[i] *= Zahl;
  }
  return Liste;
}
 
Dafür ist gar keine Rekursion notwendig:
Jetzt müsstest du nur noch erklären wie man in Scheme eine for-Schleife ohne Rekursion umsetzt.

@Mikrowelle: ohne Garantie für Korrektheit, da grade kein Scheme-Interpreter zur Hand:
[lisp](define (f lst n)
(if (null? lst) '()
(cons (* (car lst) n) (f (cdr lst) n))))[/lisp]

Grüße,
Matthias
 
Zuletzt bearbeitet:
Zurück