アカウント名:
パスワード:
LISPの美しさは、 シンタクスでは無くセマンティクス [sampou.org] だと思うのですが。
LISPにはシンタクスは無いに等しいです。なにしろ、通常の言語ならコンパイラが生成する構文木を、S式という二分木でそのまま書き下しているだけなのですから。プログラマがコンパイラの代わりをするのですね。
それに対してLISPのセマンティクスは、きわめて洗練された美しいものです。特にSchemeは、関数もブロックも制御構造も、全てが
あ、またやっちゃったか、すみません。「Schemeのシンタクスの大部分は、ラムダ式の構文糖衣」と訂正しておきます。
ところで、 R5RS (Revised^5 Report on Algorithmic Language Scheme) 日本語訳 [unixuser.org]を読んでいるのですが、恥ずかしながら(begin EXP1 EXP2 ...) と ((la
ありがとうございました。 ここ [schemers.org] の原版も読んでみます。
それにしても、 (begin (define x 1) (+ x 1)) これがR5RSで間違いとは、驚きです。
取り急ぎで失礼します。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
行きたいが・・・ (スコア:1)
関西でやってくれれば、万難を排して参加するのだが。本当に。
LISP って、一番美しい言語だと思ふ。
Re:行きたいが・・・ (スコア:-1, フレームのもと)
シンタックスに惑わされるバカ発見。
シンタクスとセマンティクス (スコア:1, すばらしい洞察)
LISPの美しさは、 シンタクスでは無くセマンティクス [sampou.org] だと思うのですが。
LISPにはシンタクスは無いに等しいです。なにしろ、通常の言語ならコンパイラが生成する構文木を、S式という二分木でそのまま書き下しているだけなのですから。プログラマがコンパイラの代わりをするのですね。
それに対してLISPのセマンティクスは、きわめて洗練された美しいものです。特にSchemeは、関数もブロックも制御構造も、全てが
Re:シンタクスとセマンティクス (スコア:0)
そんなことないでしょ。
例えば (begin EXP1 EXP2 ...) が ((lambda () EXP1 EXP2 ...)) の syntax sugar だと思うなら R5RS を読み直すことをお勧めします。
Re:シンタクスとセマンティクス (スコア:0)
あ、またやっちゃったか、すみません。「Schemeのシンタクスの大部分は、ラムダ式の構文糖衣」と訂正しておきます。
ところで、 R5RS (Revised^5 Report on Algorithmic Language Scheme) 日本語訳 [unixuser.org]を読んでいるのですが、恥ずかしながら(begin EXP1 EXP2 ...) と ((la
Re:シンタクスとセマンティクス (スコア:0)
> (begin EXP1 EXP2 ...) と ((lambda () EXP1 EXP2 ...))の違いが分かりません。
> どのページのあたりに記述があるか、よろしかったら教えていただけないでしょうか?
7.1.3節および7.1.6節。
beginは
(begin <sequence>)
(begin <definition>*)
で、
<sequence> := <command>* <expression>
<command> := <expression>
lambdaは
(lambda <formals> <body>)
で、
<body> := <definition>
Re:シンタクスとセマンティクス (スコア:0)
ありがとうございました。 ここ [schemers.org] の原版も読んでみます。
それにしても、
(begin
(define x 1)
(+ x 1))
これがR5RSで間違いとは、驚きです。
取り急ぎで失礼します。