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

langsmith:77

From: Nobuo Yamashita <nobsun sampou.org>
Date: Tue, 13 Jul 2004 13:42:30 +0900
Subject: [langsmith:77] Re: 変更可能なclosure変数、対、static変数

よくわかっていないの,ほとんど teatea モードですが...

> 1,現実世界(プログラミング言語内以外)に同様なモデルがない。

カウンタ付のコピー機なんかじゃだめですか.

> 2,変更可能なclosureは初心者に分かりにくいのでは?
>
> 実際普通の人にとってどの程度分かりにくいものなのでしょうか?

closure という言葉を使うから分りにくいのかもしません.

> define create_acc(n) {
>      ac=n
>      define acc(i){
>          return ac=ac+i
>      }
>      return acc
> }
> 
> static変数のモデルを疑似コードで書くと
> 
> define create_acc(n) {
>      define acc(i){
>          static ac=n
>          return ac=ac+i
>      }
>      return acc
> }
> 
> となって、コードの見た目の複雑さはそんなに変わりません。
> それに、C言語のstatic変数は起動時に一回だけ初期化されるわけですが、

後者に対応する C でのコードってどんなコードですか?

> 上の例で想定しているような動的に関数を生成できる言語では
> create_accを呼び出す度にclosed変数の生成と初期化が行われるわけで、
> それを明示するには前者のコードの方が分かりやすいという感じもします。

そうですね.static を説明がたぶん面倒ではないかと思います.

> 以上のように、変更可能なclosureか、static変数かどちらを取るか悩んでいます。

私は,static という別枠の説明がいるようなものを導入するより,
前者の方がシンプルでよいと思います.

;; 私なら,後者は「ありえん」てなかんじです.

--nobsun

--
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  ]