2016-05-20

http://anond.hatelabo.jp/20160519135844

http://kenokabe-techwriting.blogspot.com/2016/05/ocamlgui-esumii-camloebanonstarter.html

__items.t = __value.t

コードで、これがもし破壊的代入ならば、

const ListElement = __Element(__([__items])

.__(() => ......

というように、「破壊」されたはずの、過去の__items.tすべてのデータアクセスして列挙表示できてるのは何故?

説明どうぞ?

記事への反応 -
  • http://kenokabe-techwriting.blogspot.com/2016/05/ocamlgui-esumii-camloebanonstarter.html の自称関数型コードに出てくる __value.t = e.target.value __items.t = __value.t 等々も、kenokabe氏の心の中では「時間軸でインデ...

    • http://kenokabe-techwriting.blogspot.com/2016/05/ocamlgui-esumii-camloebanonstarter.html __items.t = __value.t のコードで、これがもし破壊的代入ならば、 const ListElement = __Element(__([__items]) .__(() => ((__ite...

      • そうなんだよね 岡部氏のライブラリ、tへの代入にsetのフックが掛かってて単純な破壊的代入ではないんだよね この辺JavaScriptがわかってるひとが岡部ライブラリのソース読まないとわか...

        • 単純な破壊的代入でない、ってのも変な言葉だな。 ライブラリソースレベルで破壊的代入というのは、もう意味のない批判だと確定で、 ライブラリユーザレベルでは単に破壊的代入とい...

          • すでに否定された「反論」を何度も繰り返して 無限ループでうやむやにしようとしているようですが、 誤りは何回繰り返しても誤りです。 http://anond.hatelabo.jp/20160515231526 http://anond.hatelabo...

            • 無限ループなのはおまえだろ。 もう一回だけまとめると、__x.t=__x.t+1のような単純な例はもちろん、 その「おまえが書いた命令型コード」について、 処理系が、左辺を先に評価して、...

              • いくら哲学ガーとか現在時刻ガーとか喚こうが、関数型だったらこんなことは起きません。 ユーザから見て命令型の代入そのものですね。 __x = __();》Array [ ]__x.t = 1;》1f = function(){return __x...

                • うん、だから、「おまえ」が、 __x.t = 1 と定義した時間 と __x.t = 2 と定義した時間 が異なるじゃん。 __xは、時間のストリームだ、って定義なのに、だからおまえは馬鹿なんだよ。自覚...

                  • 同じ一つの変数の値が「処理系が評価する時刻」によって変わるのであれば、 それは命令型プログラムですね。

                    • 「変数」を「時間上のストリームの現在時刻での値」とか言い換えても同じことです。念のため。

                      • 「変数」を「時間上のストリームの現在時刻での値」とか言い換えても同じことです。念のため。 命令型ならば、そもそもそういう言い換え=パラダイムの変化は生じない。 そもそ...

                    • 違うわアホ 同じ一つの変数の値が「処理系が評価する時刻」によって変わるのであれば、 それは命令型プログラムですね。 同じ一つの変数.ではなく定数というのは、 __x という、...

                      • つまり作者の脳の中では関数型ということですね。よくわかりました。ありがとうございます。

                        • 大丈夫、 つまり作者の脳の中では関数型ということですね。よくわかりました。ありがとうございます。 おまえみたいにコードは書けるが、想像力が致命的で柔軟性が皆無なやつは...

                • 再束縛OKの関数型言語はあるよ > (let [t 1, t (+ t 1)] t)2 http://www.tryclj.com/ Elixirもそうみたい t = {x: 1, y: 2} のあとで t.x = 10 t.y = 15 とか直接書き換えられたら問題かな

            • 「別の場所」じゃなくて、 各分布値を包括するストリームな。 「別の場所」とか言ってる時点で何も理解できてない。

              • 「現在の値」であるt(実体はvalOnT)とは別の場所ですね。

                • また無限ループか。 __x.t は __x の集合要素、 別の場所?なにほざいんての?語るなよ、FRPを。

                  • tの実体であるvalOnTと、過去の値を実際に保存しているseqは 同じオブジェクトの中にはありますが別のフィールド変数ですよね。

                    • tの実体であるvalOnTと、過去の値を実際に保存しているseqは 同じオブジェクトの中にはありますが別のフィールド変数ですよね。 「実体」?実体ってなに?内部実装の話?まだ言って...

      • 最初から http://anond.hatelabo.jp/20160515231526 で指摘されているとおり、セッターでvalOnTに破壊的代入して ゲッターでvalOnTの値を返してるので、内部実装だけでなく ユーザから見ても破壊的代...

        • 過去の値が全部残ってるからイミュータブルって言うんじゃないの Datomicみたいに

          • すでに出てるけどユーザから見て > const __x = __();undefined> __x.t = 1;1> __x.t = __x.t + 1;2> __x.t;2 昔の値を別の場所に保存していようが、これを関数型とは言わないし、普通の命令型。 kenokab...

            • 言い訳してるのはおまえ。 関数型ライブラリつかって、あからさまな命令型を書いて、命令型だ!って言われてもな。馬鹿だろ? 方程式の左右の評価時間が違う処理系ならば、岡部氏...

              • 「kenokabeのGUIプログラムも、イベントが起こるたびに変数の値を繰り返し更新してる。」はスルー もしくは「岡部さんの哲学を理解していない」ですか。まあそうですよね。 >方程式の...

                • 方程式の左右の評価時間が違う処理系 やっぱり「処理系」という言葉の意味を理解していないことがよくわかったので、ありがとうございました わかってるよ。そんな難しい言葉だ...

            • << イベントが起こるたびに変数の値を繰り返し更新してる。 ライブラリの内部的にはな。馬鹿がまだ、ライブラリの実装では破壊的代入だってゴネてるのかな?

            • 外野だが、関数型って彼の言うとおり思想哲学共有してないと馬の耳に念仏、豚に真珠だからな 岡部さんは豚に真珠見せてる段階

        • http://kenokabe-techwriting.blogspot.jp/2016/05/timeengine.html でまた反論されてるけどさ、 「命令型」って繰り返してるけど、どういう意味で使ってる? 「破壊的代入」ってどういう意味で使ってる...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん