Newlisp
http://www.newlisp.org/downloads/newlisp_manual.html
#!/usr/bin/newlisp ; --- runtk v 1.4 updated for 10.1 LM Nov 27th, 2009 --- ; ; original version bye Fanda: ; c http://www.intricatevisions.com/index.cgi?page=newlisp ; ; Run programs written for newlisp-tk without without it ; Only newLISP and a installation of Tcl/Tk is required. ; ; EXAMPLE on Linux/UNIX and Win32: ; ; runtk myprog.lsp ; ; myprog.lsp could also be directly embedded ; inside this wrapper (see bottom of this file). ; setup communications to Tcl/Tk (map set '(myin tcout) (pipe)) (map set '(tcin myout) (pipe)) (process "/usr/bin/wish" tcin tcout) ; tk function to pass commands to Tcl/Tk (define (tk) (write-line myout (append "if { [catch { puts [" (apply string (args)) "] }] } { " [text] tk_messageBox -message $errorInfo; exit } [/text])) (let (str "") (while (starts-with (setq str (read-line myin)) "newLISP:") (eval-string ((length "newLISP: ") -1 str))) str)) (global 'tk) ;; this is for compatibility with newlisp-tk for running ;; the Demo.lsp programs distributed with newlisp-tk ;; for new programs just use 'puts' without the 'Newlisp' wrapper (tk "proc Newlisp { command } { puts $command }") ;; exit when main window is closed (tk "bind . <Destroy> {puts {(exit)}}") ;; get program from command line or insert the program here (load (main-args 2)) ;; process incoming newLISP requests (while (read-line myin) (eval-string (current-line))) ;; eof
Scripting-Sprache, Optik erinnert stark an LISP, funktioniert unter der Motorhaube aber anders.
- Listen bestehen nicht aus Knoten, sondern sind technisch ähnlich wie arrays gemacht.
- Das Symbol
nil
evaluiert zu sich selbst. - Das Symbol
nil
zählt als logisch falsch. Das Symboltrue
sowie alles andere, einschließlich()
, zählt als logisch wahr. - Symbole: local scope statt – wie bei Scheme – lexical scope.
- Symbole als Funktionsparameter sind während Funktionslauf global sichtbar.
- Wert vor Funktionsaufruf wird gesichert (Stack?) und nach Funktionsaufruf zurückgeschrieben.
- Lokale Symbole erscheinen nach Komma
,
in Parameterliste.
Warum find ichs gut: weil LISP – entgegen seinem Ruf – die mir bekannt einfachste Programmieroberfläche ist. Newlisp übernimmt das Outfit vom klassischen Lisp. Die Interna dürfen gerne anders sein.
https://www.taoeffect.com/blog/2010/01/how-newlisp-took-my-breath-and-syntax-away/
30.12.2022
<< | Heimatseite | Verzeichnis | Stichworte | Autor | >>