2016-05-17

http://anond.hatelabo.jp/20160517022608

命令プログラムFRPとか言ってる人が決定的に理解していない点は、

ライブラリユーザ現在時刻から状態への写像fを

参照透明な関数なりストリームなりで記述して、

それを処理系が実際のシステム時刻t=0,1,2,...に適用して

状態f(0),f(1),f(2),...を得る、という本来FRPの基本原理だと思う。

まさに実装命令的だけど(誰かさんもそこは正しい)、

ライブラリユーザは参照透明な関数型の記述可能

記事への反応 -
  • http://anond.hatelabo.jp/20160514005947

    >kenokabe氏のコードは破壊的代入バリバリの命令型プログラムそのもの 何行目のどこ? どこでバリバリ破壊的代入の命令形プログラムになってんの?逃げんなよ?

    • http://anond.hatelabo.jp/20160515204046

      >ライブラリのユーザに見えるレベルでも __drawFrom.t = { x: e.clientX, y: e.clientY }; など、もろに命令型の破壊的代入ですね。 違うけど? __drawFrom は時間軸上のImmutable...

      • http://anond.hatelabo.jp/20160516053746

        関数型って時間はパラメータで与えて結果を得るんじゃないの 刻々と変化する「現在時間」を抽象化したインデックス を変数で持ってたら、命令形じゃないの

        • http://anond.hatelabo.jp/20160516113354

          >関数型って時間はパラメータで与えて結果を得るんじゃないの 刻々と変化する「現在時間」を抽象化したインデックス を変数で持ってたら、命令型じゃないの 言ってる意味がさっぱ...

          • http://anond.hatelabo.jp/20160516152330

            それをユーザから見て命令型変数への破壊的代入ではなく 参照透明な関数型インターフェースで実現するのが いわゆるモナドや(誰かの独自解釈ではない本来の)FRP。 http://elm-lang.org/ex...

            • http://anond.hatelabo.jp/20160517022608

              命令型プログラムをFRPとか言ってる人が決定的に理解していない点は、 ライブラリユーザは現在時刻から状態への写像fを 参照透明な関数なりストリームなりで記述して、 それを処理系...

              • http://anond.hatelabo.jp/20160517023637

                >それを処理系が実際のシステム時刻t=0,1,2,...に適用して状態f(0),f(1),f(2),...を得る、という本来のFRPの基本原理 じゃあ、その「本来のFRPの基本原理」なるもので、お絵かきアプリ実装し...

                • http://anond.hatelabo.jp/20160517115006

                  nonstarter氏をはじめもう1年ぐらい前から何度も示されてるんですが(以下無限ループ)

                • http://anond.hatelabo.jp/20160517115006

                  ユーザプログラムではなく「処理系が」と明記されているのに また曲解して藁人形論法の詭弁で「論破」ですか。 それとも「処理系」という言葉の意味がわからなかった?

                  • http://anond.hatelabo.jp/20160519190929

                    http://kenokabe-techwriting.blogspot.jp/2016/05/frp_18.html 使ってるライブラリのソースコード=「処理系」なるもの 残りは全部、使ってるライブラリのソースコードからfrequencyやリフレッシュレー...

                    • http://anond.hatelabo.jp/20160520115435

                      ストリームから要素を取り出すなり、関数を呼び出すなりして 「写像」を「時刻」に適用しなければ実行できるわけないけど 実際に動いてるし、その部分のコードの入口も明示されたの...

                      • http://anond.hatelabo.jp/20160520132506

                        kenokabe氏が「タイマーの解像度設定しながらマウスイベントを同時にとってなんかやる」とか言ってる部分がまさに (本当の)FRPで書かれたプログラムを実際のハードウェア上で実行す...

                    • http://anond.hatelabo.jp/20160520115435

                      kenokabe氏ははっきりと >@nonstarterの書いたコードのどこに、「実際のシステム時刻t=0,1,2,…」をとった形跡があるのか? と処理系ではなくユーザプログラムの話をしてるんですが また論...

              • http://anond.hatelabo.jp/20160517162141

                「FRPでなく状態渡しでも書ける!」ってのだけみたけど、 どこにFRP,特に、 http://anond.hatelabo.jp/20160517023637 >ライブラリユーザは現在時刻から状態への写像fを 参照透明な関数なりスト...

              • http://anond.hatelabo.jp/20160517162141

                「FRPでなく状態渡しでも書ける!」ってのだけみたけど、 どこにFRP,特に、 http://anond.hatelabo.jp/20160517023637 >ライブラリユーザは現在時刻から状態への写像fを 参照透明な関数なりストリ...

              • http://anond.hatelabo.jp/20160517162141

                「FRPでなく状態渡しでも書ける!」ってのだけみたけど、 どこにFRP,特に、 http://anond.hatelabo.jp/20160517023637 >ライブラリユーザは現在時刻から状態への写像fを 参照透明な関数なりストリ...

                • http://anond.hatelabo.jp/20160517172131

                  http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b main = playBanana disp colour freq gen https://hackage.haskell.org/package/gloss-banana-0.1.0.4/docs/src/Graphics-Gloss-Interface-FRP-ReactiveBanana.html playIO display colour frequency () ...

                  • http://anond.hatelabo.jp/20160518122300

                    また、ボロクソにつっこまれてるよな? http://kenokabe-techwriting.blogspot.jp/2016/05/frp_18.html こいつら、こんな程度の嘘が通用すると思ってるのかね?低レベルコーダが。

                    • http://anond.hatelabo.jp/20160518160748

                      状態を変数に持つ必要はない、というところは伝わってるのかな 状態を引数で与えて新たな状態を得る、という形で書ける、と そのほうが関数型的、というと反発するんだろうけど 岡...

                      • http://anond.hatelabo.jp/20160518164005

                        そんな「状態渡し」の話はもう周回遅れでとっくに終わってる。 複雑なGUIアプリを関数型で「状態渡し」で書いたら、そのうちスケールしなくなる、ってのは例の当事者が認めてて、 FR...

                        • http://anond.hatelabo.jp/20160518170332

                          まあお絵かきは綺麗に書けるってことでいいんじゃないの? そんで岡部氏のFRPでは綺麗に書けて、状態渡し派の関数型には書けない次なるお題でとどめを刺せばいいんでは?

                          • http://anond.hatelabo.jp/20160518171946

                            まあ、それも面白い展開になるだろうね。

                          • http://anond.hatelabo.jp/20160518171946

                            状態渡し派の関数型には書けない次なるお題のいいアイデアある? FRPでかいても複雑さは一緒です!とかいいながら、またHaskell+ReactiveBananaかElm使ったら笑うけどなw

                          • http://anond.hatelabo.jp/20160518171946

                            何度も指摘されているが「岡部氏のFRP」は同じメンバ変数tに何度も値を上書きしてるだけの FRP以前に関数型でもない普通の命令型プログラム。いくら論文を曲解したり哲学とか言い訳し...

                            • http://anond.hatelabo.jp/20160519142942

                              「状態渡し派」なんてレッテル張りも典型的な詭弁(藁人形論法)。 誰も状態渡しで何でも簡単に書けるなんて言ってないし、状態渡しで書くべきとも言ってない。 「お絵かきアプリ...

                              • http://anond.hatelabo.jp/20160520051838

                                言い訳だよね? 結局、nonstarterは「状態渡し」でもFRPでも複雑なアプリになっても事情は全く同じということを主張しているのだから、その真実性を証明してくれと要求されているにす...

                            • http://anond.hatelabo.jp/20160519142942

                              何度も指摘されているが「岡部氏のFRP」は同じメンバ変数tに何度も値を上書きしてるだけの FRP以前に関数型でもない普通の命令型プログラム。いくら論文を曲解したり哲学とか言い...

                          • 話題の岡部健(kenokabe)が自分のブログで凄いこと言ってる

                            ttp://kenokabe-techwriting.blogspot.jp/ このブログエントリの昨日と本日日付の分を見ると、たくさんの増田の投稿がリンク付きで引用されている。 しかもよく見ると、個々の増田の投稿を、実在...

                        • http://anond.hatelabo.jp/20160518170332

                          これのどこをどう読んだら「状態渡しはスケールしない」になるんだ…… ひょっとして状態渡しをモナド化したのがStateとか、基本的なことを全く理解していない? http://qiita.com/nonstarter...

                          • http://anond.hatelabo.jp/20160520052648

                            http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b#comment-d9a8cdf2efc67044c158 >>いずれにせよ、状態機械の数学的構成では状態遷移が状態と入力から状態への関数として表現されるというだけのこ...

                  • http://anond.hatelabo.jp/20160518122300

                    おう、あんたのこの投稿 毛の壁がSOに持って行って泣きついてるで http://stackoverflow.com/questions/37293422/a-true-frp-principle-and-reactivebanana-code

                  • http://anond.hatelabo.jp/20160518122300

                    ・Ken OKABE氏、SOで元の書き込みを捻じ曲げて説明し「間違っていますよね?」と同意を求める ・「SOはdiscussion forumではない」とたしなめられる ・「正しい」という回答がついたら特異な...

              • http://anond.hatelabo.jp/20160518160748

                http://anond.hatelabo.jp/20160517023637 >ライブラリユーザは現在時刻から状態への写像fを >参照透明な関数なりストリームなりで記述して、 >それを処理系が実際のシステム時刻t=0,1,2,...に適...

                • http://anond.hatelabo.jp/20160520054338

                  http://kenokabe-techwriting.blogspot.jp/2016/05/frp_18.html 使ってるライブラリのソースコード=「処理系」なるもの 残りは全部、使ってるライブラリのソースコードからfrequencyやリフレッシュレー...

            • http://anond.hatelabo.jp/20160517022608

              >それをユーザから見て命令型変数への破壊的代入ではなく参照透明な関数型インターフェースで実現するのがいわゆるモナドや(誰かの独自解釈ではない本来の)FRP。 はい、戯れ言へ...

          • http://anond.hatelabo.jp/20160516152330

            初期値で0与えて再帰の引数でカウント回したりとか、普通にあると思うけど

            • http://anond.hatelabo.jp/20160516152703

              >初期値で0与えて再帰の引数でカウント回したりとか、普通にあると思うけど は?初期値0で「再帰の引数でカウント回した」ら、ある無限ストリームの「現在時刻」を得るためのイ...

              • http://anond.hatelabo.jp/20160516153834

                再帰が無限なら現在時刻のインデックスは引数として無限に得られるよね グローバル変数の一部に代入しておくような手続き的な構造にする必要ないよね 関数のパラメータのみから結果...

                • http://anond.hatelabo.jp/20160516154756

                  100%不可能な机上の空論は聞き飽きたから、コードで示してみな?w いったいどうやったら「現在時刻」を抽象化したdate.nowやらfoo.t以外で、 その「現在時刻のインデックスは引数...

        • http://anond.hatelabo.jp/20160516113354

          言ってる意味がさっぱり意味がわからないんだけど、おまえはどうやって「現在時間」という結果を得る「パラメータ」を用意するつもりなんだ?ww 筋金入りの馬鹿だな、こいつww ...

        • http://anond.hatelabo.jp/20160516113354

          >再帰が無限なら無限に得られるよね グローバル変数の一部に代入しておくような手続き的な構造にする必要ないよね 関数のパラメータのみから結果を生み出すっていう参照透過な形で...

          • http://anond.hatelabo.jp/20160516155300

            よくわからんが、プログラミング原則的な意味だとコードの中に現在時刻って変数が入ってくる時点でなんかおかしいとおもうんやが。

      • http://anond.hatelabo.jp/20160516053746

        kenokabeさんの心の中ではそうなのかもしれませんが、ライブラリのユーザから客観的に見れば(分析哲学ではなく関数型言語の意味で)参照不透明なので、関数型プログラミングのメリッ...

        • http://anond.hatelabo.jp/20160516112619

          ああ。住井@東北大かな? >(分析哲学ではなく関数型言語の意味で)参照不透明なので、関数型プログラミングのメリットは享受できない、命令型の破壊的代入と等価ですね。 君の...

        • http://anond.hatelabo.jp/20160516112619

          ああ。住井@東北大かな? >(分析哲学ではなく関数型言語の意味で)参照不透明なので、関数型プログラミングのメリットは享受できない、命令型の破壊的代入と等価ですね。 君の...

        • http://anond.hatelabo.jp/20160516112619

          実際、timeengine.js を読み込んだ状態で、以下のようになります。 > const __x = __();undefined> __x.t = 1;1> __x.t = __x.t + 1;2> __x.t;2 これは岡部健氏が著書で「論理破綻」と批判していた、命令型...

    • http://anond.hatelabo.jp/20160515204046

      またすさまじいスパゲッティコードですが、要するにtimeengine.js の set: function set(tval) { の中の seq.valOnT = seq.evalEqs(tval); //self eqs eval で値を破壊的に更新して、それを g...

      • http://anond.hatelabo.jp/20160515231526

        出たでたw まーた駱駝の「すぱげってぃこーど」 まーた、「FRPライブラリの実装」にイチャモンつける大バカ。 馬鹿に質問だが、OCamlのソースコードって、純粋関数型で実装されてんの...

      • http://anond.hatelabo.jp/20160520120817

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

        • http://anond.hatelabo.jp/20160520133350

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

          • http://anond.hatelabo.jp/20160520134528

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

            • http://anond.hatelabo.jp/20160520140758

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

              • http://anond.hatelabo.jp/20160520141703

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

                • http://anond.hatelabo.jp/20160520143122

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

            • http://anond.hatelabo.jp/20160520140758

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

            • http://anond.hatelabo.jp/20160520140758

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

        • http://anond.hatelabo.jp/20160520133350

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

      • http://anond.hatelabo.jp/20160520135123

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

        • http://anond.hatelabo.jp/20160520142159

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

          • http://anond.hatelabo.jp/20160520142924

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

            • http://anond.hatelabo.jp/20160520143856

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

              • http://anond.hatelabo.jp/20160520144213

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

                • http://anond.hatelabo.jp/20160520144913

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

                  • http://anond.hatelabo.jp/20160520145208

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

                • http://anond.hatelabo.jp/20160520144913

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

            • http://anond.hatelabo.jp/20160520143856

              再束縛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 とか直接書き換えられたら問題かな

        • http://anond.hatelabo.jp/20160520142159

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

          • http://anond.hatelabo.jp/20160520143910

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

            • http://anond.hatelabo.jp/20160520150731

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

              • http://anond.hatelabo.jp/20160520150849

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

                • http://anond.hatelabo.jp/20160520152016

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

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

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん