アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
これでどないだ? (スコア:1)
#を、書くつもりだったが、投稿フィルタが許してくれない。
1. 手続きの書き方
defineの直下のlambdaは、簡略化できる。 手続きの引数の書き方をチェクし
て下され。
2. let
letの変数定義の部分は、複数の変数を定義できて、後の変数で前の変数を参
照する場合には、let*を使う。letrecは、相互参照する複数の手続きを定義す
る場合以外には、おそらく使う必要はない。
3. named-let
letrecで内部手続きを定義するのと、手続き内部でdefineで内部手続きを定義
するのと、named-letを使って自己参照を
Re:これでどないだ? (スコア:1)
> defineの直下のlambdaは、簡略化できる。
コレは知っているものの、何となく省略しない書き方の方が
自分が混乱せずにすむような気がしたので、今はあえて省略
していないのです。
(未来に書き方をかえるかどうかは多分その時の気分次第。)
> letrecは、相互参照する複数の手続きを定義す
> る場合以外には、おそらく使う必要はない。
これは、単なる自己再帰の場合はletだけでいける、と、
解釈したのですが、自分の書いたスクリプトのletrecを
letに直すと、未定義エラーになってしまいました。
と思ったら、名前付きletなら、ちゃんと動きました。
> lispの基本はcond。ifのelse式、condのelse式の部分
> には、複数の式を書けたはず。
> それがいやならletではなくprognを使うとか。
なるほどです、順序制御にはprognを使うのですね。
(ちなみに、自分の使っているscheme実装のgaucheでは、
prognの代わりにbegin、prog1の代わりにbegin0という
名前になってました)
どうもありがとうでした。