The Sussman
-
;fricky schrieb:
geht bestimmt auch in smalltalk ganz gut, nur dass man auf den ersten interpreter verzichten kann (hey u_ser_l, wär das was für dich?).
Das geht in Smalltalk deshalb gut, weil die Eigenschaft, daß es einen knapp formulierbaren self-interpreter geben sollte, eine der Motivationen für die Entwicklung war - eine Art objektorientiertes Gegenstück zu Lisp, dessen self-interpreter auf eine halbe Seite paßt.
Einen self-interpreter kann man theoretisch in jeder Turing-vollständigen Sprache schreiben, sonst wäre die Sprache nicht Turing-vollständig, also auch in pascal.
-
u_ser-l schrieb:
Einen self-interpreter kann man theoretisch in jeder Turing-vollständigen Sprache schreiben, sonst wäre die Sprache nicht Turing-vollständig, also auch in pascal.
klar, aber diese sogenannte 'meta-zirkularität' bedeutet ja, dass ein interpretiertes programm seinen eigenen interpreter verwendet um codes in seiner eigenen sprache zu interpretieren. wenn man einfach nur einen interpreter für sprache x in sprache x schreibt, ist es weder zirkulär noch spektakulär und dürfte bei nman keine wogen der begeisterung auslösen.
-
;fricky schrieb:
dann machen wir uns erstmal (natürlich in pascal) einen pascal-interpreter und dann ein pascal-programm, das unter diesem interpreter läuft und selber andere psacal-programme interpretieren kann, die die funktionalität des interpreters, auf dem dieser interpreter läuft, mitbenutzen.
Und wie aufwändig mag sowas wohl für ein Pascal sein? Bist Du schonmal auf die Idee gekommen, dass sowas in Lisp besonders hübsch gehen könnte, viel hübscher als in Pascal, wo Du erst noch einen eigens hierfür konstruierten Pascal-Interpreter basteln musst, wohingegen dieser gesamte Prozess in Lisp sehr natürlich und elegant vonstatten geht?
SICP wäre ohne Lisp nicht SICP. Natürlich könnte man vmtl. auch Dylan oä. verwenden, aber die Klammern stören erfahrungsgemäß primär Leute, die noch nicht mit einem Lisp gearbeitet haben.
im kern isses algodat und lisp-tutorial in eins plus *ein einziges kapitel* (matalinguistic abstraction), dass über standard-zeug hinausgeht.
Lies doch mal die Kapitel selbst, statt nur die Kapitelnamen, bevor Du Dich zu solchen Aussagen hinreißen lässt.
-
nman schrieb:
;fricky schrieb:
dann machen wir uns erstmal (natürlich in pascal) einen pascal-interpreter und dann ein pascal-programm, das unter diesem interpreter läuft und selber andere psacal-programme interpretieren kann, die die funktionalität des interpreters, auf dem dieser interpreter läuft, mitbenutzen.
Und wie aufwändig mag sowas wohl für ein Pascal sein? Bist Du schonmal auf die Idee gekommen, dass sowas in Lisp besonders hübsch gehen könnte, viel hübscher als in Pascal, wo Du erst noch einen eigens hierfür konstruierten Pascal-Interpreter basteln musst, wohingegen dieser gesamte Prozess in Lisp sehr natürlich und elegant vonstatten geht?
SICP wäre ohne Lisp nicht SICP. Natürlich könnte man vmtl. auch Dylan oä. verwenden, aber die Klammern stören erfahrungsgemäß primär Leute, die noch nicht mit einem Lisp gearbeitet haben.
im kern isses algodat und lisp-tutorial in eins plus *ein einziges kapitel* (matalinguistic abstraction), dass über standard-zeug hinausgeht.
Lies doch mal die Kapitel selbst, statt nur die Kapitelnamen, bevor Du Dich zu solchen Aussagen hinreißen lässt.
Ach nman du bist doch schon so lange hier im Forum unterwegs was diskutierst du da mit fricky überhaupt noch rum? Das ist einfach sinnlos (er ist ja auch ein Troll).
-
warum fallt ihr immer wieder auf fricky rein?
-
nman schrieb:
Natürlich könnte man vmtl. auch Dylan oä. verwenden...
auf jeden fall. allein schon mathematische ausdrücke in dylan, wie
let circumference = 2 * pi * radius;
sehen gegenüber lisps(circumference (* 2 pi radius)))
schon mal viel besser aus.
-
;fricky schrieb:
klar, aber diese sogenannte 'meta-zirkularität' bedeutet ja, dass ein interpretiertes programm seinen eigenen interpreter verwendet um codes in seiner eigenen sprache zu interpretieren.
ich habe bewußt "self-interpreter" geschrieben, weil das ein exakt definierter Begriff ist.
Der Begriff "metazirkulär" ist mir zu schwammig um ihn zu benutzen.
in sicp steht ohnehin (Zitat)
An evaluator that is written in the same language that it evaluates is said to be metacircular.
-
Also ich programmiere seit einem Jahr in Scheme und von Augenkrebs noch keine Spur. Man setzt dort auch nicht mehr Klammern als in anderen Programmiersprachen. Und wenn es nicht gerade um mathematische Ausdruecke geht, so kann eine Funktion viel kompakter formuliert werden, wobei auch wiederum Klammern gegenueber anderen Sprachen eingespart werden.
-
;fricky schrieb:
allein schon mathematische ausdrücke in dylan, wie
let circumference = 2 * pi * radius;
sehen gegenüber lisps(circumference (* 2 pi radius)))
schon mal viel besser aus.
Oberflächlichkeiten allererster Güte. Es gibt auch für andere Lisp-Ausdrücke Implementierungen für M-Expressions.
Btw, das Binding wäre natürlich in anderen Lisps
(let circumference (* 2 pi radius))
Was daran unlesbarer sein soll als an der Variante mit dem überflüssigen = und ; weiß ich nicht.
-
Kenner des Fricky schrieb:
Ach nman du bist doch schon so lange hier im Forum unterwegs was diskutierst du da mit fricky überhaupt noch rum? Das ist einfach sinnlos (er ist ja auch ein Troll).
Manchmal lasse ich mich offensichtlich von besonders dämlichen Aussagen dazu hinreißen, was zu posten. Und hier lag eindeutig so eines vor.
-
nman schrieb:
(let circumference (* 2 pi radius))
Was daran unlesbarer sein soll als an der Variante mit dem überflüssigen = und ; weiß ich nicht.
es ist nun ma nicht von dieser welt: http://www.lisperati.com/lisplogo_fancy_256.png
-
es ist nun ma nicht von dieser welt
Es ist aber noch lange kein Grund, diskriminierend zu sein.Vor allem, wen einem die Argumente ausgehen. (Manche boesen Menschen koennten dir Rassismus, Alienismus oder anderes vorwerfen)
-
knivil schrieb:
es ist nun ma nicht von dieser welt
Es ist aber noch lange kein Grund, diskriminierend zu sein.Vor allem, wen einem die Argumente ausgehen. (Manche boesen Menschen koennten dir Rassismus, Alienismus oder anderes vorwerfen)
ok, ich gebe ja zu dass ich keine sachlichen argumente habe, sondern nur lisp-code vom aussehen her doof finde. aber anti-alienist bin ich wirklich nicht. wie denn auch? trolle sind doch selber halbe aliens.
-
Aus Practical Common Lisp:
Lisp's syntax is quite a bit different from the syntax of languages descended
from Algol. The two most immediately obvious characteristics are the extensive
use of parentheses and prefix notation. For whatever reason, a lot of folks
are put off by this syntax. Lisp's detractors tend to describe the syntax as
"weird" and "annoying." Lisp, they say, must stand for Lots of Irritating
Superfluous Parentheses. Lisp folks, on the other hand, tend to consider
Lisp's syntax one of its great virtues. How is it that what's so off-putting
to one group is a source of delight to another?Ich kann es auch nicht verstehen was daran so schlimm sein soll.
-
LISPer schrieb:
Aus Practical Common Lisp:
Lisp's syntax is quite a bit different from the syntax of languages descended
from Algol. The two most immediately obvious characteristics are the extensive
use of parentheses and prefix notation. For whatever reason, a lot of folks
are put off by this syntax. Lisp's detractors tend to describe the syntax as
"weird" and "annoying." Lisp, they say, must stand for Lots of Irritating
Superfluous Parentheses. Lisp folks, on the other hand, tend to consider
Lisp's syntax one of its great virtues. How is it that what's so off-putting
to one group is a source of delight to another?Ich kann es auch nicht verstehen was daran so schlimm sein soll.
Der nächste Absatz ist auch noch ganz amüsant:
I can't really make the complete case for Lisp's syntax until I've explained
Lisp's macros a bit more thoroughly, but I can start with an historical tidbit
that suggests it may be worth keeping an open mind: when John McCarthy first
invented Lisp, he intended to implement a more Algol-like syntax, which he
called M-expressions. However, he never got around to it. He explained why not
in his article "History of Lisp."^1The project of defining M-expressions precisely and compiling them or at
least translating them into S-expressions was neither finalized nor
explicitly abandoned. It just receded into the indefinite future, and a
new generation of programmers appeared who preferred [S-expressions] to
any FORTRAN-like or ALGOL-like notation that could be devised.