1 名前:デフォルトの名無しさん [2012/03/16(金) 21:54:23.92 ] haskell.org ttp://www.haskell.org/ 日本語サイト ttp://www.sampou.org/cgi-bin/haskell.cgi ttp://www.shido.info/hs/ 過去ログ 関数型プログラミング言語Haskell Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/ Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/ Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/ Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/ Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/ Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/ Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/ Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/ Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/ Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/ Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/ Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/ Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/ Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/ Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/ Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
367 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 20:02:20.48 ] でも昭和時代はHaskellはまだ生まれてない
368 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:44:00.62 ] Haskellはギリギリ昭和じゃなかったっけ?
369 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 12:07:52.76 ] Haskell Report Version 1,0 は1990年の4月1日に発行された。 (1.0未満のバージョンは少なくとも公には無かったと思う) A History of Haskell research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/ ちなみに、それに先立ち、委員会で言語の名前をあれこれ考えるんだが、 Haskell に決まった後、旦那さんの名前を使っていいかと奥さんに訪ねに行くんだ。 その心遣いが暖かくて、上記pdfのこのくだりは結構好きだ。
370 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 13:41:28.71 ] Mirandaは誰なの?
371 名前:デフォルトの名無しさん [2012/05/20(日) 13:51:57.71 ] スペインか何処かの著名な寿司職人じゃなかったっけ?
372 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 14:23:19.93 ] 天王星の衛星
373 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 16:31:59.27 ] コカコーラ社のスプライトに対抗して出されたペプシ社の商品
374 名前:デフォルトの名無しさん [2012/05/21(月) 08:24:16.49 ] bsフジの番組で日本手ぬぐいだっけか作るのに すかいつりーのデザイン使うのはダメとか言われたらしいよ
375 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 08:34:21.97 ] デザインが商品の最も主要な一部だからでしょ。
376 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 09:08:20.97 ] スーパードライホールみたいにとりあえず上にうんこでも載せとけばいいんじゃね?
377 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 09:21:15.13 ] スカイツリーにはいいイメージ全然ないわ
378 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 07:21:03.78 ] 東京ハスカイケリー
379 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 07:22:12.91 ] >>376 あのうんこビルすごいよな。でもトーキョー近辺に住んでる連中しか知らんのでは? 東京はすごいよな。 うんこビルに新宿の座薬ビル なんでもありだ
380 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 08:24:28.93 ] 何スレだよ
381 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 10:19:44.11 ] では君達、議論に戻りたまえ
382 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 11:08:16.00 ] ksks
383 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 13:11:48.56 ] 東京スカイツリー 東京使いすぎー
384 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 13:22:52.22 ] だよなー さいたまタワーの方がよかったよなー 土地まで用意したのによー
385 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 17:01:44.09 ] 最近Haskell勉強しようか、と自習中です。 Haskellでwindowsのcomを使う、具体的にはHaskellからExcelを 使いたいのですが、サンプル等はありませんか? haskellscriptやhdirectは公式からもページが見れず、 com-1.2.3はインストールができてもあまりexcelを操作するような サンプルが発見できませんでした。
386 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 21:19:18.78 ] CSVをいじったり、VBAのコードを自動生成するくらいしかやったことない
387 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 22:42:49.91 ] >>385 com パッケージの公式サンプル haskell.forkio.com/com-examples ここに WMI にアクセスするサンプルがある。 (完全なソースも zip になってる) COM のインターフェースを取得する方法も、 そのメソッドを呼ぶ方法も、必要な情報はほぼ入ってないか? COM の基礎が分っていれば簡単に Excel に応用できると思うんだが・・・ このサンプル見てピンとこないのなら、とりあえず Haskell は置いておいて、 VBスクリプトとかから COM にアクセスする方法を調べてみると良い。 COM に対するアクセスの要領はほとんど同じだと気づくはずだ。 (オートメーションを扱える言語なら何でも良いが VBS が一番イメージが近いと思う) 厳しいことを言うようで悪いが、Haskell に限らず、 自分がやりたいことをピンポイントで例示するサンプルなんてまず無いぞ。 サンプルを弄ったり、自分で極簡単なCOMを作ってアクセスしてみたりして、 少しずつ理解していくことを勧める(「勉強」をしているのならの話だが)。
388 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 06:58:19.48 ] >>386 >>387 ありがとうございます。確かに、そのサンプル見てもよくわからず・・・ 基本がなっていないみたいです。 まずはCOMの基本的な部分からゆっくり勉強していきます!
389 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 13:49:05.42 ] ☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < Haskell Platform の stable release まだ〜? \_/⊂ ⊂_ ) \________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
390 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 22:08:37.74 ] あの絵本とりあえず発売したのか?
391 名前:デフォルトの名無しさん [2012/05/23(水) 22:13:49.97 ] え!絵本なん!?
392 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 22:18:58.27 ] すごいH本、今日本屋行ったけど置いてなかったわ これだから地方は
393 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 22:22:22.73 ] iteratee に関するその周辺技術や考え方 メモ化に関するその周辺技術や考え方 FRP に関するその周辺技術や考え方 ジェネリックなデータ型や関数などの考え方 スペースリークに関するメカニズムや対策 Stream Fusion などを含む最適化の考え方や仕組み というような辺りの話はなんで書籍にならないんだろ どれでも、それ単体で本が書けてしまえるほど豊富な内容を含んでいるのに
394 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 23:21:06.12 ] >>392 PDFでも販売してるよ estore.ohmsha.co.jp/titles/978427406885P
395 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 07:46:46.57 ] 略しかたがすごいな すごいH本。。。 巨乳や万筋だらけかと思うぞw
396 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 07:51:57.42 ] プログラミングHaskell --> プロH ふつうのHaskellプログラミング --> ふつうのH Real World Haskell --> 実践H 入門Haskell --> 入門H
397 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 08:01:07.46 ] むらむらしてきた Little Schemerでも写経して心を鎮めるとしよう
398 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 08:50:42.90 ] >>395 まあ、twitterのネタだからな
399 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 12:39:35.57 ] 無理して素人受け狙うのはみっともないと思う
400 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 13:15:48.66 ] 素人受けwww
401 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 15:04:50.83 ] はじめてのC 並だよね。
402 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 21:00:22.24 ] はじめてのC みんなのPython やさしいRuby すごいHaskell ← new!
403 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 07:02:59.99 ] なんの括りだ?
404 名前:デフォルトの名無しさん [2012/05/25(金) 07:53:50.13 ] みんなのパイソンとか物騒だろ
405 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 07:56:30.09 ] で、内容はどうなのよ? プログラミングHaskellかどっち買うのが正解?
406 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 08:29:14.46 ] だれか出せよ Oh!Python って本を。Oh!Xがあったんだから。
407 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 08:29:58.56 ] Oops!Pythonでおっぱい本のほうがいいか
408 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 08:35:30.56 ] https://github.com/lazyatom/kintama >>405 Learn Youの原著は編集前のがWebで読める プログラミングHaskellは薄くて簡潔で練習問題付き お好みに合わせてどうぞ
409 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 12:59:37.97 ] Haskell Platform 2012.1.0.0 マダー
410 名前:デフォルトの名無しさん [2012/05/25(金) 13:37:19.64 ] >>402 さつばつScala
411 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 14:14:28.87 ] >>405 Learnは内容はいいけど、訳がどうかが問題。これだけは見てみないとわからない。 山本さんみたいに訳せてるかどうか
412 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 14:57:09.79 ] Data.Vector.Primitiveはとても特殊な場合を除いて推奨されないとありますが とても特殊な場合とはどんな場合なんでしょうか?
413 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 18:04:21.99 ] 配列ライブラリを書くときとか?
414 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 18:10:07.54 ] 将来、Vector の実装がPrimitiveのレベルで変更されるということだったら困る
415 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 18:26:23.52 ] >>406 その筋の人だ!
416 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 18:53:57.14 ] 考えてみれば98糞食らえからwindows糞食らえで 裏街道ばかり来てるな。
417 名前:デフォルトの名無しさん [2012/05/25(金) 19:32:56.19 ] >>405 >>411 元々のお二人の訳も素晴らしいのですが、さらにかなりレビューされていて とてもわかりやすくて良いと思います。 ただ、原文のブロークンな調子を踏襲して訳されているので、 そういうのが嫌いな方には不向きかも知れません。 内容的には、すごいH本の方が、関数型言語の初心者には 分かりやすいと思います。
418 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 19:41:28.34 ] cabalを利用していて、依存性が原因でパッケージのインストールに失敗する場合、通常どのように対処すればいいのでしょうか? 大まかで良いので教えていただけるとありがたいです
419 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 19:50:41.63 ] 普通の人は諦めて、バージョンアップするまで待つ。 普通でない人は、*.cabal ファイルをテキストエディタで修正する。 私は普通でない人なんで、どんどん書き換える。 もちろん異常が無いかどうかはできるだけ検証するが。
420 名前:デフォルトの名無しさん [2012/05/25(金) 22:05:05.22 ] すごいHaskell買おうかな…… フリー版+3000円の価値があるかが問題…
421 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 22:22:11.53 ] >>420 もし主目的が、Haskell の関する他人の文章を楽しむことではなく、 あくまで Haskell を学ぶことであるまなら、 フリー版でよく分らない部分をここで訊いて、 それでも納得できなければ買う、というのはどうだろうか
422 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 23:00:34.35 ] >>417 オーム社でやってるレビュー方式には参加したことがあるからだいたい雰囲気分かるわ。藁 訳は期待してるわ。by 411
423 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 23:02:51.97 ] >>420 英語の洋書に一度は手を出したい→原著サイトでしばらく格闘してみる。 オンラインで読むのは嫌目がしょぼしょぼするし、頭に入るきがしない。英語は好き→原著でどうぞ 英語は苦手。→強烈なH本をどうぞ。
424 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 18:43:17.15 ] 紙のよりpdf版が少しやすい estore.ohmsha.co.jp/titles/978427406885P
425 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 22:19:42.13 ] しかもカラーらしいな、pdf版
426 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 23:21:27.87 ] 加筆とかはないのか、結局。
427 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 23:46:47.63 ] 「すごいHaskellたのしく学ぼう!」は気配りと楽しさがすごい ttp://d.hatena.ne.jp/keigoi/20120526/sugoih
428 名前:デフォルトの名無しさん [2012/05/27(日) 15:53:38.46 ] Linuxで*.cabalってどこにあるんでしょう。 探せど探せど見つからなくて困ってます。
429 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 16:04:40.54 ] >>428 意味が分らん。 cabal ファイルは Linux も Windows も関係ないだろ。 自分でパッケージを作りたいのなら cabal ファイルも自分で書くし、 Hackage から落としてきたパッケージなら展開したディレクトリ内に入ってる。
430 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:58:41.69 ] >>428 ディストリのパッケージになってる奴の*.cabalファイルならソースパッケージを展開すると入ってると思います。
431 名前:418 mailto:sage [2012/05/27(日) 20:08:53.91 ] >>419 ありがとうございます しかしなかなか上手いこと通すのは難しいですね・・・
432 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 02:19:34.53 ] .ghciを設定したら警告が出たんだが *** WARNING: /home/hi/Haskell is writable by someone else, IGNORING! *** WARNING: /home/hi/Haskell/.ghci is writable by someone else, IGNORING! .ghci :set prompt "ghci> " 設定も反映されないし、よくわからん。
433 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 02:57:35.46 ] 英語読めないのか?
434 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 07:48:02.06 ] すごいHaskellのやつか。 ワーニングの英語には、これと似た内容が書いてある。 www.google.co.jp/search?hl=ja&q=.ssh+%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3 それでも分からなかったら、ワーニングの一部コピペしてググってみよう。
435 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 11:53:23.62 ] ワーニングワーニングワーニングワーニング
436 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 20:58:20.92 ] >>435 ボスキャラでも登場するのか
437 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:11:31.73 ] ウォーニングって言いたいんだろ
438 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:18:48.90 ] ワーニングのバッグスバニー
439 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:20:36.83 ] >>435 ,436 へいおまち www.youtube.com/watch?v=lySjinT6f0A#t=1m55s
440 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:22:04.36 ] 某書籍に「だったら、おまえはStar Warsをスターワーズと読むのか」とあって、 そりゃもっともだと思うと同時に、そういう話じゃねぇだろと思ったな。
441 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:33:48.96 ] 『宇宙戦艦ヤマト』が、「ワープ」を「ウォープ」に修正する最後の機会だったんじゃないか、 とか今では言われているが
442 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:42:05.41 ] 「ワープ」は1億人が意味を共有できる立派な日本語 修正の必要はない
443 名前:ぬるぽ mailto:sage [2012/05/28(月) 22:03:46.93 ] バレーボールもボレーボールらしいな nativeの発音聞いたことないけど
444 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:16:32.09 ] 「グッドマーニング云々」とか言ってたヘミ猫を思い出す。
445 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:28:44.29 ] ラウターの調子が悪い
446 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:44:59.51 ] むかし、猫でもわかるプログラミングで、 エディットコントロールをエジットコントロールと言っていて、 もの凄く違和感を覚えた記憶がある。 でもよく考えてみれば、エジソンと同じなんだよな。
447 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:46:22.72 ] >>443 アメリカ人は普通にバーリボーだったけどなぁ。
448 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:34:37.10 ] ♪こわれかけのレディオ
449 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:38:13.93 ] gtk2hs や wx などの GUI ライブラリのラッパーを作りたい。 下記のことがラッパーでは実現不可能なら一から作ることになる。 例えば、ボタンを押すとラベルの文字が変わる処理を記述したい場合、 素の gtk2hs や wx なら、ボタンのイベントハンドラに登録した関数内で、 ラベルのプロパティに対して set 関数を使って値を書き換える感じだと思う。 これはあまりに手続き的でムカムカしてくる。 こうではなく、ボタンのイベントに反応するプロパティ型を作り、 それをラベルのプロパティに最初に設定した後は変更(再設定)しない。 イベントが起きなくても、起きても、自動的に文字が設定される。 プログラマはイベント時に何が起きるかを時系列にそって設定するのではなく、 プロパティが何に対してどう反応し、どう変化するかを定義する。 これができれば、いくぶん宣言的で心地よい。 私みたいな者が考える事なんて既にいろんな人が考えていると思うんだが、 このような仕組みを作る上で、参考になりそうな資料はないだろうか。
450 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:48:03.50 ] wxPython と decorator
451 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 08:41:21.13 ] まさにそれがFRP
452 名前:432 mailto:sage [2012/05/29(火) 09:40:44.70 ] chmod 700 .ghci chmod 700 Haskell/ で解決した。 Haskell/もパーミッションいじらないといけなかった。 なんで設定ファイルがない時は普通に動くのに、 設定ファイルを置くと警告が出るのか意味がわからない。
453 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 09:44:25.92 ] 俺は「***** is writable by someone else, IGNORING!」という警告を読むことが できない文盲です、って大声で自分で言いふらして嬉しいのか?
454 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:09:31.31 ] >>453 初心者でごめんね。
455 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:15:28.14 ] いや初心者とかじゃなくて、英語読めればその警告が何故出たのかわかるだろってことだろ
456 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:48:28.72 ] 日本語でお説教する事に何のメリットがあるか、わかるだろ
457 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 11:32:31.62 ] なでしこで記述する事に何のメリットがあるか、わかるだろ
458 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:02:42.50 ] 英語の初心者ということだろう。
459 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:48:14.86 ] というか Unix は一つのマシンを複数のユーザーが使うことが前提だから、 初期化スクリプトみたいなファイルを誰でも編集可能だと、たとえば自分の ファイルを全部消す、みたいな悪意ある記述を追加されるかもしれない、 という前提を知らないと、英語が読めてもわからないかもしれない。 ていうか >>434 を華麗にスルーしちゃダメだろ。
460 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:52:44.84 ] >>450 まだ調べ始めたばかりだけど、求めているモノとは何となく違う感じがする。 decorator の機能を使ってイベント処理している例をいくつか見てみたけど、 結局イベントハンドラの中で描画関数を呼んだり、計算したりしている。 つまり、>>449 の「素の gtk2hs や wx なら」の部分と 本質的に何も変わらないのではないだろうか。 もちろん、自分でももう少し詳しく調べてはみるが。 >>451 言葉が足りず申し訳ない。 これが FRP の一つの形態になっている事は分ってた。 (リアクティブシステムの構築を関数型っぽく記述する事) Haskell で使えるFRPライブラリにも色々あって、 たとえば Yampa の仕組みや実装をいくら調べたところで >>499 のような事の実現に直接役立つわけではない(実際色々調べた)。 >>499 に繋がるような何かキーワードはないだろうか。
461 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:16:16.96 ] バグ? Prelude> succ 1.000022342 2.0000223420000003
462 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:27:06.59 ] xamlのデータ・バインディングとか?
463 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:36:37.09 ] XAMLファミリは、Bindingに加えてViewModelのプロパティ間で リアクティブプログラミングする仕組みを導入すると 正に>>449 のような書き方になるね。 しかし、あれをHaskellでどうやったら再現できるのかはさっぱりわからん。 やってる事は、依存関係のあるキャッシュの管理と似てるので キャッシュを持つサーバの仕組みなんかが参考になりそうだが・・・
464 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 16:02:10.76 ] >>460 色々調べてたのなら既知かもしれんが プロパティを設定するというのはwxパッケージの提供するインタフェースに似てるな このプロパティは実質IO aとa -> IO ()のペアにすぎんのだけど、それなりに>>449 で述べてるようなのに近いように思う これとFRPの組み合わせはreactive-banana-wxパッケージでプロパティやイベントをEventやBehaviorとして リアクティブシステム内で扱えるような補助関数を提供してる 参考になる記事としてはreactive-bananaの作者のblogとか
465 名前:449, 460 mailto:sage [2012/05/29(火) 19:46:57.92 ] みんな、ありがとう。 知ってるものも、知らなかったものも、色々キーワードが出てきた。 それぞれの関連も含めて調べてみる。 本棚の肥やしになってる "Pro WPF in C# 2008" もやっと役立つ日が来たかも。 アドバイスを受けて、Heinrich Apfelmus のブログをちょっと見てみたけど、かなり面白い。 まとまった時間が取れる休日にでも本格的に読んでみるよ。 (Conal Elliott のブログより読みやすい英語だ) wx のプロパティは gtk2hs のそれや OpenGL の StateVar と似たようなモノで、 やはり「値」を設定したり取得したりするものという以上のモノではないのでは。 その値はあくまでそのプロパティの意味する値そのもので、 例えば text プロパティなら String 型しか受け付けない。 そこに「ユーザーが何かした時にはある文字になる」という IO String の値を 設定することはできない。 一応繰り返しておくと、次のような考え方が wx や gtk2hs などのものと思う。 ボタンが押されたイベントでは何を処理するのか? ・初めにラベルの文字を変え ・次にテキストボックスの背景色を変え ・最後にボタンを不活性にする このような手続き的なものを、次のように宣言的にしたい。 ラベルの text プロパティとは何か? ・ボタンプッシュイベントで文字を変えるものだ テキストボックスの bgclolor プロパティとは何か? ・ボタンプッシュイベントで色を変えるものだ ボタンの enable プロパティとは何か? ・ボタンプッシュイベントで False になるものだ
466 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 22:36:50.20 ] >>465 w :: Frame b :: Button t :: TextBox l :: Label pushEvent :: Button -> Event () text :: Prop w String bgcolor :: Prop w Color enable :: Prop w Bool w <- frame [text := const "hoge", show := const () <$> createEvent w] t <- textbox [bgcolor := changeColor <$> pushEvent b] l <- label w [text := changeString <$> pushEvent b] b <- button w [enable := const False <$> pushEvent b] こういうのが思い浮かんだ wxのプロパティやイベントの型をEventなりBahaviorの形式にしただけだが >>465 の最後の記述のような捉え方は自然に出来る書き方にはなってると思う 今のreactive-bananaでDoRecが使えるなら 頑張ってwx-coreパッケージ直接叩いてこういうインターフェースの高水準ライブラリ書くのは可能な筈
467 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 22:42:05.22 ] 部品単位でイベントハンドラを書きたいってこと?