[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 04/25 05:23 / Filesize : 232 KB / Number-of Response : 786
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part17



1 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 22:19:28.26 ]
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/

511 名前:デフォルトの名無しさん [2012/02/03(金) 23:22:13.48 ]
アロー演算子ならまかせろ!

512 名前:餃子チョコレート ◆8X2XSCHEME mailto:sage [2012/02/03(金) 23:25:47.33 ]
>>510
こういうのはどう?
d.hatena.ne.jp/MaD/20070816#1187319817

513 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:05:18.95 ]
>>506
Arrowの心
d.hatena.ne.jp/MaD/20070816
>Monadと同様にArrowにもArrow則という規則があります。
> 1. (a >>> b) >>> c = a >>> (b >>> c)
> 2. arr (g.f) = arr f >>> arr g
> 3. arr id >>> a = a = a >>> arr id
> 4. first a >>> arr pi1 = arr pi1 >>> a
> 5. first a >>> arr (id X f) = arr (id X f) >>> first a
> 6. first a >>> arr alpha = arr alpha >>> first (first a)
> 7. first (arr f) = arr (f X id)
> 8. first (a >>> b) = first a >>> first b

514 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:28:24.89 ]
>>512
読みました\(^O^)/

515 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 17:10:59.19 ]
要約すると「Arrow はパズル」。


516 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 17:41:35.25 ]
> とりあえずfirstについてのルール4,5,6,7,8は無視します。
ワロタ

517 名前:デフォルトの名無しさん [2012/02/05(日) 10:47:39.79 ]
ghciで階乗の関数factを定義しようとしてるのですが、以下のようにすると
Prelude> let fact 0 = 1
Prelude> let fact n = n * fact (n - 1)
Prelude>
先週まではうまく行ってたのに、急になぜかうまくいかなくなりました。
Prelude> fact 10
^CInterrupted.
Prelude>
fact 10とかやると永遠に返って来ません。
どうもlet fact 0 = 1のあとにlet fact n = n * fact(n-1)とやるとfactの定義が上書きされてる
みたいなのですが、何か間違ってるでしょうか?


518 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 12:44:07.59 ]
>>517
ghci上ではこうやるといいです

let fact 0 = 1; fact n = n * fact (n-1)

先週か今週にかけて ghc のバージョンアップをしたのでは?
ghciの仕様が変わったかどうか詳細は知らないので、原因は違うかもですが

519 名前:デフォルトの名無しさん [2012/02/05(日) 13:16:48.53 ]
>>518
ありがとうございました。動きました。
先週までは
Prelude> let func1 'a' = "aaa"
Prelude> let func1 'b' = "bbb"
こう書けてたと思うんですが、自信がなくなってきました。上のも、こう書けば動きました。
Prelude> let func1 'a'="aaa"; func1 'b'="bbb"
ありがとうございました。




520 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:39:55.29 ]
HaskellはHTMLに<?haskel ?>のように
埋め込めますか?

521 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:43:44.18 ]
>>520
埋め込んだらええやん

それを解釈して正式な HTML や JavaScript なんかに変換する
サーバーアプリに通せばええよ

522 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:51:15.58 ]
なんちゅう名前のサーバアプリがええんですか?

523 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 19:16:46.10 ]
>>522
そんなん自分で作るんちゃうんかいな

探したって無駄やさかい

524 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 19:32:44.58 ]
>>523
ホンマですか? えらい難儀な話ですけど、しゃーないですね。
スレ汚しすんませんでした。

525 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 20:25:45.57 ]
>>523
てげよだきー

526 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 07:07:30.44 ]
んじちゃーぴら

527 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 07:48:14.32 ]
a_1 = a_2 = 1, a_n+2 = a_n+1 + a_n

a_9 = a_8 + a_7
  = (a_7 + a_6) + a_7

でa_7をグラフ簡約してくれるようにするにはどうしますか?

まさか a_7 を2度計算するなんて事になったら
土砂降りの中、滑って転んだ野良犬のような惨めに打ちのめされた気分になります

  = (a_7 + a_6) + [a_6 + a_5]_7
  = (a_7 + [a_5 + a_4]_6) + [a_6 + a_5]_7
  = (a_7 + [a_5 + a_4]_6) + [a_6 + [a_4 + a_3]_5]_7
  = (a_7 + [a_5 + [a_3 + a_2]_4]_6) + [a_6 + [a_4 + a_3]_5]_7
  = (a_7 + [a_5 + [a_3 + a_2]_4]_6) + [a_6 + [a_4 + [a_2 + a_1]_3]_5]_7
  = (a_7 + [a_5 + [2 + 1]_4]_6) + [a_6 + [a_4 + [2]_3]_5]_7
  = (a_7 + [a_5 + [3]_4]_6) + [a_6 + [3 + [2]_3]_5]_7
  = (a_7 + [5 + [3]_4]_6) + [a_6 + [5]_5]_7
  = (a_7 + [8]_6) + [8 + [5]_5]_7
  = (13 + [8]_6) + [13]_7
  = 34

ってイメージで

528 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 18:48:44.70 ]
>>527
何らかの形で共有を明示するしかない
たとえば
fib = 1 : 1 : zipWith (+) fib (tail fib)

529 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 21:57:38.51 ]
>>528
フィボナッチ以外でも適用できる汎用的なノウハウが欲しいです
寧ろ数列計算よりシミュレーション的な
将棋の次の一手の探索みたいな



530 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 22:02:40.24 ]
・処理するには新しい処理が芋蔓式に出現する
・それらの多くが頻繁に共通にあらわれる・共通処理は省かないと総処理は天文学的オーダーで膨れ上がる


こういうケースの汎用指針が欲しいです

531 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 22:07:23.01 ]
DPを自動でやりたいように見えた

532 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 22:09:06.55 ]
>>530
メモ化ね
汎用指針は、計算済みの値を捨てないで保存しておくこと
IOとかStateモナド上で状態にして引き回してもいいし、
>>528みたいに、全部の値を含む(場合によっては無限の)データ構造を定義してもいい

533 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 07:20:52.45 ]
>>531
「芋蔓式に出現する」の意味がよく分からないけど、新しい式を書き加えてなんどもコーディングするっていうことなら、トップレベルに定義していけばよいんじゃないの?

コーディングを繰り返さないなら、>>532のいうようにメモ化を求めているんだろうけど、将棋の次の一手とかメモ化したら空間オーダが爆発しそうだな。
それで解決できるなら、将棋の決して負けない手順がすでに明らかになっているだろうし。
そのレベルのことをどうしてもやりたいなら金に糸目を付けず並列クラスタを作るしかないんじゃないの?

534 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 07:50:15.51 ]
「Stringはオワコン。これからはText」って言われてるのを見て
Data.Text を使おうとしたけれど、なんで index が O(n) なの?
中身はただの配列だと思ってたのに。
hackage.haskell.org/packages/archive/text/0.11.1.13/doc/html/Data-Text.html



535 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 09:20:34.12 ]
データはコピーしないで、リストでデータの在処を持ってるんでしょ。
lastがO(1)だからケツも押させてるんだと思う。

536 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 11:41:41.19 ]
>>535
ありがとう。

ソースをざっと見てみたら、配列・オフセット・長さの組を使っているようだっ
た。単なる配列じゃないのは、部分文字列(tail とかで)でコピーしなくていい
ようにするためらしい。

で、index が遅いのは、Unicode のサロゲートがらみみたい。index s n の n
が文字数なので、サロゲートがあると配列のインデックスとずれてしまうせい
で、先頭か最後から順番に数えてるようだった。length が O(n) なのも、たぶ
んそれが理由。

ちょろっと眺めただけなので、まちがってるかも。

とりあえず String より遅くはなさそうなので、もうちょっと試してみます。


537 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 12:05:29.10 ]
とにかくでかいデータ用だぜ。

538 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 12:10:04.92 ]
時代はUTF32

539 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 12:35:16.38 ]
UTF48



540 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 13:42:13.86 ]
>>515
じゃあパズルをとこうぜ。
www.amazon.co.jp/gp/product/0486281523/
www.amazon.co.jp/gp/product/0486653552/

541 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 18:37:49.70 ]
>>539
warota

542 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 21:18:58.47 ]
QuickCheck って Monad もテストできるのずっと気づかなかった

543 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 23:30:34.09 ]
本屋に行ったけど、RWHしかなかった
人気ないのかな…

544 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:30:53.27 ]
>>543
人気の定義による。

・プログラマー人口内のシェア?
→世間のビジネスの9割以上は単純な事務作業なので、 そういう処理を書ける言語はHaskell以外に沢山ある。
ちなみに、書店はシェア重視。

・ある問題領域で解決したい課題を持つ者にとって、ロジックを実装しやすいか?
→自分と同様の問題領域の人を探したほうがいい。

545 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:27:54.18 ]
>>543
RWHの和訳って前半部分がいまいちわかりにくいのが残念。
また、あのままでGHC7以後で動かそうとすると、ちょっと面倒なところ
が出てる。だから、改訂版に期待したいんだがな。

546 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:30:21.86 ]
・Haskell高速化テクニック
なんて本がでないかな?


547 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:31:18.34 ]
言いだしっぺの法則

548 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:40:30.32 ]
オライリーが投資を回収できてれば次も期待できると思うが、どうなんだかね

549 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 09:05:15.98 ]
yesod本がでるくらいだから、RWHは収益が上がってるんじゃないかと?
>>547 残念だけど、教えて欲しい立場。人にチューニングを語れるほどじゃないし。



550 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 09:23:04.02 ]
Haskell wikiのPerformanceの項とかmkothaさんの記事
ghcのドキュメント
ghcのプロファイリング機能とかcriterionパッケージ
thread scope

最終的には諦めてC++/Asmで書く

551 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:12:58.97 ]
クリテリオンんて何かワクワクする語感だな
アニメでいうとロボものだろう

552 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:46:57.36 ]
クライテリオンな

まぁ別にどっちでもいいことだけど

553 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 13:56:27.61 ]
超聖判規クライテリヲン

554 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:24:57.36 ]
あ、関節の病気か。

555 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:32:33.40 ]
2日に GHC のバージョンが 7.2.2 から 7.4.1 に上がってたのか

ghci 上で data や instance なんかの宣言ができるようになってた
これは便利

それはそうと、さっさと実行時に利用コア数を変えられるようにしてほしいものだ

556 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:50:35.15 ]
setNumCapabilities
増やせるだけで減らせないみたいだけど

557 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:54:08.17 ]
we recommend installing the Haskell Platform instead of GHC. The
current Haskell Platform release includes a recent GHC release as well
 as some other tools (such as cabal), and a larger set of libraries
that are known to work together.

と書いてるからさ、5月まで待ったほうがいいんじゃない? <7.4.1

558 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:59:10.81 ]
GHCの代わりにHaskell Platformをインストールするのを薦めとくわ。いまの
Haskell Platformは最近のGHCを含んでいて、おまけに、他のツール(cabalと
かね。)も動くし、よく使われてるライブラリも動くからさ。

だとさ、と意訳しとく。

559 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:00:24.87 ]
既存プロジェクトの移行はライブラリが7.4に対応するまで待つとしても、
普段は最新版使った方が楽しい



560 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:03:51.27 ]
Debian系統だとHaskell Platformは単なる仮想パッケージ。

561 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:06:35.18 ]
>>559
まあ、こなれた人ならそうかもしれない。でも、ここって、いろんな人が
いるから、一応書いといた。こなれた人ならトラブルに出会っても、解決
できるだろうし、それが楽しいもんな。

https://groups.google.com/forum/?fromgroups#!forum/haskell-jp
でも、しんさんがリリースのメールに注意書きがされているけどね。

562 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 08:01:47.18 ]
someRecord{someField = f $ someField someRecord}

haskellのレコード構文って何でこんなきもちわるいの
フィールド一つ書き換えただけの新しいレコードが欲しいだけなのに

563 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 08:17:24.52 ]
ご覧下さい
このクランケの症例では

・碌に調べもしない
・煽る事で住人達に答えさせようとしている

点が伺えます

これらは怠慢横柄病患者に共通に見られるのです

564 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 08:37:41.32 ]
バレたか・・・
いやまあ、自分で調べなかったわけでもないんだけどな
ほぼ無理なのは分かってる

565 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 08:40:12.60 ]
本当の地獄はレコードをネストさせてからだ…

566 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:11:24.92 ]
>>562
どういう書き方ができると良かったの?

567 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:22:02.57 ]
>>556
増加だけでもできるようになったのか
リリースノートを斜め読みしてたから見逃してた

568 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:34:11.27 ]
ネスとされたレコードの書き換えはdata-accessorとかlenseとか使うと少しは楽になるけど
これパフォーマンスどうなるんだろうという不安が出てくる

569 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:35:43.98 ]
>>568
神に従え




570 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:17:15.85 ]
>>566
SomeRecordとSomeFieldを二回も書きたくないというか
フィールドと同名のgetterを自動生成するような動きを許容したのなら
もっとはっちゃけて欲しかったというか
テンプレート? テンプレートなぁ・・・

571 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:29:24.18 ]
TemplateHaskellの有用性はlispが示している

572 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:23:20.06 ]
>>570
そうは言っても、「汎用的にするなら」 少なくとも

1. 何のデータ型の(値の)
2. 何のフィールドを
3. どう変えるのかを

この3つのは何らかの形で指定する必要があると思うが

573 名前:572 mailto:sage [2012/02/12(日) 13:31:17.15 ]
>>570
すまん、不満点をちょっと勘違いしてたみたいだ

こういうことか

someRecord { someField = f $ someField someRecord }

{} 前の someRecord の部分が型構築子じゃなく値構築子の場合、
f $ someField someRecord の someRecord 部分は明白だから省略可能

こうなれば、幾分スッキリするな

574 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:04:59.49 ]
Cabal でライブラリをインストールする時、
オプションで library-profiling を有効にすると、
そのライブラリもプロファイリングの対象にできるよね

これって、プロファイリングしないで普通に使う時は
遅くなったりしない?

575 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:11:00.59 ]
-pを使うとパッケージを二通りコンパイルする
ので遅くならない

576 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:31:06.20 ]
>>575
そっか、安心した
ありがと

577 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:23:37.68 ]
Yampa の par 関数の型について質問です。
(他のパラレル系関数もですが、代表して par を選びました)

par :: Functor col => (forall sf. a -> col sf -> col (b, sf)) -> col (SF b c) -> SF a (col c)

このルーチン関数の sf という型変数には、SF b c 以外入ることは無いと思うのですが、
単純に a -> col (SF a b) -> col (b, SF a b) という型では何がいけなかったのでしょうか

578 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:52:55.77 ]
Cabal で --enable-documentation とやっていっしょにインストールされるドキュメントに、
ソースコードへのリンクが貼られるようにする方法はないのでしょうか?

HackageDB のサイトで見られるドキュメントみたいにしたいです

579 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 10:41:10.37 ]
>>577
スライドとか論文だと確かOpacity(透過性?)のためとか書いてあって、
俺も正確な意味はよくわからなかったんだけど、
SFを書き換えられるような関数を渡せるのを防止してるんじゃないかな。
route a xs = [(a, identity)]
みたいな、コレクションの中身を無視して出所不明のSFにしちゃうような。



580 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 05:11:31.94 ]
F#を始めたのだが、モナドで行き詰まっている。
F#の本にはモナドのことが書いていない。
で、ネットでモナドのことを収集すると、ハスケルのがほとんど。
F#での説明もあるが、なんか解りづらい。

で、モナドって何ですか?
関数型プログラミングをやるにはモナドが必須ですか?

どなたか教えてください _o_

581 名前:580 mailto:sage [2012/02/16(木) 05:15:46.89 ]
ちなみに数学科出身ですが、圏論は知りません。
習った覚えがありませんし、仮に習っていても記憶にないのだから、習っていないのと同じです。


582 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 05:48:37.15 ]
モナドはモナド則そのもの。
使い方としてはモナド則を頭に入れてからListモナドとStateモナドを理解すれば後は大体類推が利く。
F#でどうなのかは知らないが、少なくともHaskellで何か書こうと思ったらモナドは必須。
まあ「モナドとは何か」みたいな話は過去スレ遡ればいくらでも出てくるよ。

583 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 08:10:51.47 ]
わかればわかるけど、モナドはモナド則そのものってのが禅問答みたいで
わかりにくいんだよなぁ。。

Haskellのクラスは、C++でいう抽象クラス見たいなもので、
Haskellのモナドがクラスでどう定義されてるか調べていけば、
意味はわからなくても、使い方はわかると思うよ。

モナドの意味は使っている内に、なんとなくわかるようになる、、、と思う。

584 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 09:19:10.08 ]
コンポーネントのようでコンポーネントでない
象のようで象のようでない
さてはモナドって南京弾簾だろ!

585 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 09:37:41.55 ]
Haskell 最大の失敗はモナドにモナドという名前をつけたことにある。
もっと「もこもこ」みたいな可愛い名前にすれば大流行していた。
とか講演でいってたな。


586 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 09:48:34.02 ]
名前はモナドのまま、バインド演算子を ( ´∀`)みたいなのにすれば良かったのではなかろうか

587 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 09:51:36.68 ]
ガンダムで頼む

588 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 10:16:54.54 ]
>>585
そのソースはどこよ?w

589 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 13:28:49.11 ]
>>588

元ネタはこれのはず。

Wearing the hair shirt: a retrospective on Haskell (2003)
Simon Peyton Jones, invited talk at POPL 2003.
research.microsoft.com/en-us/um/people/simonpj/papers/haskell-retrospective/

Our biggest mistake
Using the scary term "monad" rather than "warm fuzzy thing"




590 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 14:37:03.09 ]
2011年版はビデオで見られる。ちょっと重いけれど。
Escape from the Ivory Tower: The Haskell Journey, from 1990 to 2011
yow.eventer.com/events/1004/talks/1054

簡単だけど32分あたりに "warm fuzzy thing" が出てくる。

各銀行が秘密の Haskell 部隊を雇ってるって話はどこまで本当なんだろう。


591 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 15:37:45.12 ]
>>583
なんでこのなものが要るのか直感的に分からないってこと?

592 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 15:56:24.13 ]
>>585
そして処理が一本道だから
もこもこで一本道

略して もこみち とかどうよ?

593 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:21:24.02 ]
>>583
Haskellの型クラスはC++の抽象クラスとは全く違うよ。
オブジェクト指向の考え方は捨てるべき。

594 名前:デフォルトの名無しさん [2012/02/16(木) 18:14:54.42 ]
Haskellとオブジェクト指向は根本的に違うから例えて考えるのは実際の処理挙動ぐらいにしたほうが……

595 名前:デフォルトの名無しさん [2012/02/16(木) 18:27:40.48 ]
C++にはクラスという機能を用いて現実世界の概念を抽象化することに成功し、直感的な設計・実装が行えるようになった
Haskellでは、どのようなパラダイムがこれから出てくるのか
私はそれが楽しみでならないのです
って去年死んだおじいちゃんが死ぬ間際に言ってた

596 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:49:29.40 ]
ぷうぷう!

597 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 19:05:35.61 ]
もこもことかモコナとかそういうかわいいのはいらない
モサドにしよう

598 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 19:24:01.77 ]
>>595
Haskellは遅延評価という機能を用いて現実世界の手順を隠蔽することに成功し、
宣言的な設計・実装が行えるようになりました。
しかしHaskellは関数型言語からは踏み出さないだろうから、新しいパラダイムは
Ozのようなマルチパラダイム言語に期待すべきだろうと思えてならないのです。
って友達がさっき言ってた。

コンピュータプログラミングの概念・技法・モデル
toro.2ch.net/test/read.cgi/tech/1196257692/

599 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 19:27:51.75 ]
Ozはオワlan



600 名前:餃子チョコレート ◆8X2XSCHEME mailto:sage [2012/02/16(木) 20:52:04.09 ]
うまいな。
一瞬「終ったランゲージ」と思わせといて実は「終わらん」というダブルミーニングですね!!

601 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:13:47.28 ]
>>593
そう?
「Learn You a Haskell for Great Good!」には、JavaのInterfaceみたいなのと
考えたほうがいいって書いてるけど。
全く違うっていうならどう考えればいいか説明してほしいな。



602 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:27:34.65 ]
>>591
最初、(>>=)はただ関数に引数にして渡すだけじゃないか、なんで必要なんだとか思ってた。
他のもなんでこんなのが必要か理解できなかったよ。

変な型修飾付けるせいで、型が違うって怒られるし。

でもそうやって好き勝手書けないようにするのが狙いなんだな。

603 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:46:41.67 ]
デザインパターンみたいなもの、でいいと思うけどな > モナド

604 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:56:34.58 ]
私は >>593 ではないのですが、逆に訊きたいです

Haskell の型クラスと Java のインターフェイスにおいて、
考え方の共通点とは何でしょうか

それは、コンパイル時にどう解釈されるかというレベルの共通点でしょうか
それとも、アプリケーションを作る上での指針となるくらいのレベルの共通点でしょうか

605 名前:604 mailto:sage [2012/02/16(木) 22:57:13.58 ]
>>604
すいません、>>601 に対しての質問です

606 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 03:06:37.40 ]
Haskellのclassはplatformに改名しろ

607 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 04:24:56.80 ]
型を集合だと考えれば型クラスって命名は自然

608 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 04:41:03.84 ]
型(type)のメタ概念として類(class)という名前を採用することは間違っていない
ただし、これだけオブジェクト指向の概念が普及しているのが現実なのだから、
それを配慮した命名が望ましかった(かもしれない)ということ

これをHaskellの傲慢さと見るか、それとも数学的に正しい命名であると見るかは
判断が分かれるところ

609 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 04:50:13.16 ]
オブジェクト指向のclassが類と無関係だと思ってるっつーか、
類をモデルにしているのはtype classだけだとか思ってるところが
Haskellerの傲慢さじゃないの?



610 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 05:12:11.76 ]
simula(I,67) staff.um.edu.mt/jskl1/talk.html
smalltalk(80) web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html#The%20Smalltalk%20Object%20Model
これ参考にCからC++とObjCができたのか。

611 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 06:49:42.48 ]
>>609
オブジェクト指向のclassって命名にケチつけてるなら
Haskellerは傲慢だけど、そうじゃないよね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef