Funktion als Liste



  • Hallo zusammen, ich kenne mich mit der Lisp-Sprache relativ gut aus, kenne aber Common-Lisp noch nicht im einzelnen. Arbeiten tue ich mit Lispworks Personal Edition. Wenn ich mit defun eine Funktion einbaue, hätte ich es gerne, die Funktion als Liste zu erhalten, damit ich die Funktion als Liste weiterverarbeiten kann, zB sie zu optimieren. Bei meinem eigenen Lisp-Dialekt ist dies möglich, da hängt die Funktions-Liste einfach als Wert an dem Funktions-Atom. Weiss jemand Rat ?



  • Dafür gibt es zur Laufzeit keinen Standardweg, weil CL die Funktionen üblicherweise compiliert, und ihren Source dann vergisst.

    Zur Compilierzeit kannst du mit defmacro¹ code generieren lassen. Du kannst dir beispielsweise ein Macro erstellen, nenne es mal mein-defun, das die S-Expression speichert, um sie später neu zu compilieren, also defun aufzurufen.

    Um eine spezifische Funktion zu optimieren, gibt es außerdem compiler macros².

    _____
    ¹http://clhs.lisp.se/Body/m_defmac.htm
    ²http://clhs.lisp.se/Body/m_define.htm



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum Themen rund um die IT in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke für die Antworten, ich halte mich lieber an die eigene Sprache GLisp. Die kann ich von C++ MFC Programmen aufrufen. Die Oberfläche mit den MFC, und die Verarbeitung mit GLisp. Tschüss ...



  • LispFan schrieb:

    Danke für die Antworten, ich halte mich lieber an die eigene Sprache GLisp. Die kann ich von C++ MFC Programmen aufrufen. Die Oberfläche mit den MFC, und die Verarbeitung mit GLisp. Tschüss ...

    Oha. Hast du einen Link zu ner Webseite darüber oder so? GLisp kenne ich garnicht, und Google liefert nur Zeug das vmtl nicht das ist was du meinst.



  • Die Programmiersprache habe ich selbst definiert, und implementiert in C++ MFC, aber noch nicht veröffentlicht, ein Dialekt von Lisp. Es macht einfach Spass, mit der eigenen Sprache zu programmieren. Es ist ein Kommandozeilen-Programm, wie es früher üblich war. GUI macht MFC. Optimieren kann man Lisp Programme schon, mein Spezialgebiet. Auch dadurch weil GLisp Programme, selbst Listen sind, also Daten.


Anmelden zum Antworten