アカウント名:
パスワード:
という、中学生が理解しやすいしきい値で説明した教科書につっこんでいる大人みたいだな。
変数は箱じゃないっていう主張はいいけど、箱じゃないならなんて言って説明すんのさ
ちゃんと説明するなら、変数は箱で、変数への名前の束縛が彼の言うところのラベル貼りになるんだろうね。そうでもしないと、Cやschemeで普通に現れる「名前無しの変数」が説明できなくなる。言語ごとに、変数のエクステントやスコープの規則が異なるから、pythonしか触ったことのない人には難しいんじゃないかな。pythonのスコープは、ダイナミックスコープを彷彿とさせるから、彼も、そのうちfunarg問題とかに気づくことでしょう。
そもそも数学の関数の語源が函数なんだから、関数こそが函であり箱。変数を箱だと感じている人は変数のことをf(x){return x;}(数学だとf(x) = x)みたいなプリミティヴな関数だと捉えているからで、変数そのものに箱の機能があるわけではない。
という話はおいといて、変数宣言でスタックに領域を確保する言語を考えると、変数を箱と言いたくなる気持ちはわかるが、それでは変数の一面しか表せない。実際にプログラミングでどう変数を使うかってことを考えると、変数はロジックを記述するために繰り返し使うわけで、それは「箱だから」で説明できたり理解が容易になったりしない。比喩として成立してないんだよ。
あれこれ否定するのは簡単。じゃなんて呼べば端的に説明しやすくなるの?
変数は変数でいいでしょ。なんでわざわざ箱とかラベルとか、わかりにくい例えを使う必要があるのか。
高校の数学で使う「変数」とは違うからなぁ……
そこだよな。それは説明しておかないと
だから名札なんでしょ。数学の変数でもそうだけど、個別に代入された値に意味があるわけじゃなくて、それを抽象化して再利用するために変数を用いているんだから。実身・化身の化身の方が変数の本質で存在理由。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
陽子、電子はこれ以上分解できない粒子 (スコア:2, すばらしい洞察)
という、中学生が理解しやすいしきい値で説明した教科書につっこんでいる大人みたいだな。
変数は箱じゃないっていう主張はいいけど、箱じゃないならなんて言って説明すんのさ
Re:陽子、電子はこれ以上分解できない粒子 (スコア:0)
ちゃんと説明するなら、変数は箱で、変数への名前の束縛が彼の言うところのラベル貼りになるんだろうね。
そうでもしないと、Cやschemeで普通に現れる「名前無しの変数」が説明できなくなる。
言語ごとに、変数のエクステントやスコープの規則が異なるから、pythonしか触ったことのない人には難しいんじゃないかな。
pythonのスコープは、ダイナミックスコープを彷彿とさせるから、彼も、そのうちfunarg問題とかに気づくことでしょう。
Re: (スコア:0)
そもそも数学の関数の語源が函数なんだから、関数こそが函であり箱。変数を箱だと感じている人は変数のことをf(x){return x;}(数学だとf(x) = x)みたいなプリミティヴな関数だと捉えているからで、変数そのものに箱の機能があるわけではない。
という話はおいといて、変数宣言でスタックに領域を確保する言語を考えると、変数を箱と言いたくなる気持ちはわかるが、それでは変数の一面しか表せない。実際にプログラミングでどう変数を使うかってことを考えると、変数はロジックを記述するために繰り返し使うわけで、それは「箱だから」で説明できたり理解が容易になったりしない。比喩として成立してないんだよ。
Re: (スコア:0)
あれこれ否定するのは簡単。
じゃなんて呼べば端的に説明しやすくなるの?
Re:陽子、電子はこれ以上分解できない粒子 (スコア:1)
変数は変数でいいでしょ。
なんでわざわざ箱とかラベルとか、わかりにくい例えを使う必要があるのか。
Re: (スコア:0)
高校の数学で使う「変数」とは違うからなぁ……
Re: (スコア:0)
そこだよな。それは説明しておかないと
Re: (スコア:0)
だから名札なんでしょ。数学の変数でもそうだけど、個別に代入された値に意味があるわけじゃなくて、それを抽象化して再利用するために変数を用いているんだから。実身・化身の化身の方が変数の本質で存在理由。