[前][次][番号順一覧][スレッド一覧][生データ]

langsmith:80

From: Tsuguo MOGAMI <mogami brain.riken.go.jp>
Date: Tue, 13 Jul 2004 19:58:52 +0900
Subject: [langsmith:80] Re: 変更可能なclosure変数、対、sta

こんばんは、

On 2004.7.13, at 03:07  PM, MAEDA Atusi wrote:

>> それはclosureでcloseした変数を
>> 変更可能にするか、変更不能にするかです。
>>
>> 実装の簡単さからいっても、有用さ便利さから言っても
>> 変更可能なclosureがいいのですが、以下の点から言って気に入りません。
>
> closureってのは、オブジェクト指向言語でいうオブジェクトと非常に似てい
> ますよね。

はい、そうですね。
どちらも(変更可能な変数)+(不変なコード)の結び付けを
行う仕組みだという点でほぼ同じものですね。
だから仰せのようにSchemeではclosureを使ってオブジェクト指向
プログラミングができるわけです。
反対に(例えばPythonでは)オブジェクトがあれば変数が変更可能なclosureが
なくとも良いと言う立場になるのだと思います。以下の文書のように。
c.f.「PythonとLispの関係について」by Paul Prescod
http://www.shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html

どちらか片方があれば大体の場合は用は足りてしまいます。
先のメールではあえてこっちの(オブジェクト)の話は避けて
変数とコードを結び付ける別な方法である、Cのstatic(のようなもの)
に限りましたが、このオブジェクト対、クロージャも悩ましい問題です。
両方入れるのはもちろん難しくないけど、でも出来るだけミニマルにしたい。


> closed variableをインスタンス変数だと思えば、変更可能にするのはまあ自
> 然かな、と思います。

分かっている人には全くその通りで問題ないのですが、
closed variableをインスタンス変数だと思うのは、
何も知らない人にとって自然なモデルなんだろうかと悩んでいます。

さらにさかのぼってclosureのモデルが分かりやすいか
ということが気になっています。


> もし「closed variableは変更不可」とするのなら、closed variableの参照の
> 仕方(構文)を、普通の変数の参照とは全く異なるものにする、なんてのはどう
> でしょう?

なるほど。それは考え方としてよくわかりますが、
そうすると、数学なんかであるような自然にコンテキストの値を
取り込むという事が汚くなってしまうし・・うーん。

それでは

最上嗣生



--
ML: langsmith quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

        76 2004-07-13 12:42 [mogami brain.riken.g] 変更可能なclosure変数、対、static変数   
        77 2004-07-13 13:42 ┣[nobsun sampou.org   ]                                       
        78 2004-07-13 15:07 ┣[maeda-langsmith atus]                                       
->      80 2004-07-13 19:58 ┃┣[mogami brain.riken.g] Re: 変更可能なclosure変数、対、sta  
        81 2004-07-14 01:52 ┃┗[shugo ruby-lang.org ] 強い型の言語とクロージャ            
        84 2004-07-14 15:02 ┃ ┣[takuo aya.or.jp     ]                                   
        86 2004-07-14 23:32 ┃ ┃┗[shugo ruby-lang.org ]                                 
        85 2004-07-14 20:52 ┃ ┗[randy mvd.biglobe.ne]                                   
        87 2004-07-14 23:59 ┃  ┗[shugo ruby-lang.org ]                                 
        88 2004-07-15 00:04 ┃   ┣[shugo ruby-lang.org ]                               
        89 2004-07-15 01:50 ┃   ┗[nobsun sampou.org   ]                               
        90 2004-07-15 11:04 ┃    ┗[shugo ruby-lang.org ]                             
        79 2004-07-13 14:43 ┗[matz ruby-lang.org  ]