[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bep] learning lisp: let
- To: bep@argv.org
- Subject: Re: [bep] learning lisp: let
- From: TAKAHASHI Naoto <ntakahas@m17n.org>
- Date: Mon, 4 Jun 2001 10:37:11 +0900 (JST)
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
- User-Agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.0.104 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)
n高橋です。井上さんが全部解説してくれたので、周辺だけをちょっと。
Koichi INOUE writes:
>> (let (a) (setq a 123) (print a))
>> と書いてC-jすると、
>> 123
>> 123
>> と二回表示されます。
>> (私のところでは、(setq ...)だけでも、返された値を表示してしまうみたいで
>> す……。)
> lisp-interaction-modeでC-jすると、評価した結果がバッファの挿入されます。
> だから、123が2回でてくるのは、
> 1回目はprintという関数の副作用
> 2回目は式全体の結果
> です。最後に評価されるprintという関数がプリントした値を返すからでしょう。
> setqで値が表示されるのもそういうわけです。
2回表示されて評価と副作用がまぎらわしいようだったら、C-j の代わりに
C-x C-e として下さい。評価された結果は *scratch* の中ではなく、エコー
エリア (画面最下段) に出るようになります。副作用である print の出力は
そのまま *scratch* に入ります。
> # 自分でチェックしながら書いていると時間がかかりますね。N高橋さんにおま
> # かせするべきなのかも。
井上さんが解説してくれると私は楽です。(笑)
Koichi INOUE writes:
> おっと、プログラム初心者に再起は結構つらいかも。。
> # 坂本さんはがんばって!
おっと、漢字が違ってますね。「再起」ではなくて「再帰」です。英語では
recursive となります。「再帰」の代わりに「頭山」(あたまやま)という訳語
も考案されたようですが、普及しませんでした。
ちなみに「頭山」は古典落語の一つです。知らない人は調べてみると面白いか
もしれません。
--
TAKAHASHI Naoto
ntakahas@...
http://www.m17n.org/ntakahas/