Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Rekursion in Lisp

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.02.2006, 22:38 Uhr
Bruder Leif
dances with systems
(Operator)


Moin moin!

Erklärt mich für einen Volltrottel, aber ich steig einfach nicht durch. Wollte mich mal ein bisschen in Lisp einlernen und testweise ein Programm schreiben, das rekursiv bis 5 zählt:

Code:
(defun test(n)
    (if (> n 0)
        ((test (- n 1))
        (format t "~A~%" n))
    )
)

(test 5)



Mein Gedanke: if hat drei Parameter, erst die Bedingung, dann der then-Teil, dann der optionale Else-Teil. Wenn ich nun aber den rekursiven Aufruf und die Ausgabe zusammen ausführen will? Einfach in Klammern zusammenfassen wie oben geht nicht, weil clisp plötzlich einen LAMBDA-Ausdruck will. Bitte?!? Irgendwie muss das doch möglich sein *snif* Bin wohl zu müde zum lernbcwdenken...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.02.2006, 22:42 Uhr
Bruder Leif
dances with systems
(Operator)


OK, doch nicht. So gehts:


Code:
(defun test(n)
    (cond ((> n 0)
        (test (- n 1))
        (format t "~A~%" n))
    )
)

(test 5)




--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 07.02.2006 um 22:42 Uhr von Bruder Leif editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: