tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
524
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Mikrowelle Tutorials.de Gastzugang
    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?
     

  2. #2
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Dafür ist gar keine Rekursion notwendig:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    //Pseudocode
    Liste = (1, 2, 3, 4, 5);
    Zahl = 3;
    Funktionsname(Liste, Zahl){
      for( i = 0; i < AnzahlDerElementeInListe; i++ ){
        Liste[i] *= Zahl;
      }
      return Liste;
    }
     

  3. #3
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Zitat Zitat von timestamp Beitrag anzeigen
    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:
    Code lisp:
    1
    2
    3
    
    (define (f lst n)
      (if (null? lst) '()
      (cons (* (car lst) n) (f (cdr lst) n))))

    Grüße,
    Matthias
    Geändert von Matthias Reitinger (01.01.11 um 21:27 Uhr)
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    schau mal hier:
    http://www.linux-magazin.de/Heft-Abo...er-gehts-nicht

    Als Spielerei hier noch eine Variante mit map:
    Code lisp:
    1
    2
    
    (define (mul-by-factor factor a-list)
        (map (lambda (n) (* factor n)) a-list))

    Aufruf / Ausgabe:
    Code :
    1
    2
    
    > (mul-by-factor 3 '(1 2 3 4))
    (3 6 9 12)

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    Mikrowelle Tutorials.de Gastzugang
    Danke Ihr habt mir sehr geholfen
     

Ähnliche Themen

  1. SCHEME Rekursiver aufruf.
    Von Mikrowelle im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 10.01.11, 08:44
  2. SCHEME generierung von Listen
    Von Mikrowelle im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 06.01.11, 15:47
  3. [QUIZ#9] RedWing (Scheme)
    Von RedWing im Forum Archiv
    Antworten: 0
    Letzter Beitrag: 25.07.09, 22:58
  4. Scheme
    Von sanni7 im Forum Sonstige Sprachen
    Antworten: 15
    Letzter Beitrag: 12.02.09, 13:22
  5. Suchen nach einer Liste von Zeichenketten in einer Datei
    Von freshone im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 14.01.05, 13:45