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/
52 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:51:46.30 ] >>48 どの辺りで打ちのめされたのかによるよ 俺は Conceptual Mathematics: A First Introduction to Categories www.amazon.co.jp/dp/052171916X/ これを読んで、難しかったり、意味が分からなかったり、 納得できなかった部分に出会ったら、その都度他の資料に当たったり、 数学系の掲示板で質問したりしてた とりあえず古典的な集合の意味が分かって、 単射・全射が分かって、モノイドが分かれば、 圏論の入門書はけっこう読み進められると思う (圏論の入門書の中でも必要な集合論を必要最小限説明してるし) 抽象的すぎて「飽きる」可能性は大いにあるが
53 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 13:59:21.34 ] 集合論って前提がほとんどないから 勉強しはじめるには良い分野だと思う
54 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:06:02.43 ] プログラミング出来るなら概念としては分かってるところも多いしね
55 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:16:07.06 ] モナドとモノイダル圏って何か関係あるんですか? join(T^2 -> Tな自然変換)がモノイドになっているっていう話ですか?
56 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:17:40.48 ] ああ、モノイドは単位元もいるのか…
57 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 15:51:22.79 ] ______ r〃〃〃 f7⌒ろ) l‖‖‖ || f灯 |‖‖‖ || | | |儿儿儿._」⊥厶 〔__o____o_≦ト、 . i / ⌒ ⌒ ヽ ) !゙ (・ )` ´( ・) i/ | (_人__) | \ \ `ー' / / ー- 、 . ,ィ(⊆≧リ≦⊇)〃 / rク\ . / | ̄r少}¨ ̄〃 / /′ ヽ 〃 l | l| | l| 〃 / / └ヽ / l |l | |l/″ / ! 厂 \ く, Y ! l」fレト! / | / 1 丿 | | 丿} じ’ / | / | / l | `¨ / レ′ | 真の思考停 (在位 2009年9月16日〜2010年6月8日) 民主朝の初代考停、言行不一致、虚言、脱税、 そして外交において巨大な負の遺産を築いた。
58 名前:デフォルトの名無しさん [2012/01/04(水) 17:03:46.51 ] >>52 >圏論の入門書はけっこう読み進められると思う 読み進んでもイミフと思われ
59 名前:デフォルトの名無しさん [2012/01/04(水) 17:06:48.83 ] モナド則ってなんでこんなに遠回しな言い方するの? [1] (return x) >>= f == f x [2] m >>= return == m [3] (m >>= f) >>= g == m >>= (\x -> f x >>= g)
60 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 17:25:19.49 ] これ以上ないってほど直球のように見えるが
61 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 17:27:45.77 ] >>59 それが「遠回し」と言えるのなら、 遠回しでないもっと簡単な表現に置き換えてみてほしい
62 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 18:17:34.27 ] おれは集合論の順序完備化あたりでうちのめされた・・・orz
63 名前:デフォルトの名無しさん [2012/01/04(水) 20:55:50.83 ] >>60 そうか。そういう人もいると思うが、通常そういう人は、「何でも理解しちゃう」 人が多いんだよね。 >>61 簡単な表現かどうか以前に、まずこれとは別の表現は見つかる?
64 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:10:30.32 ] >>59 は「この表現が理解できない」のではなく、 「なぜ遠回しな言い方をするのか」と訊いている これは、遠回しではない言い方を知っている上で、 そのような表現ではなく、なぜ敢えて遠回しにするのか、 という意味で訊いているように俺は解釈した ならば、その遠回しではない言い方に置き換えて表現してみてはくれないだろうか それとも、俺の解釈が間違っていたか? ちなみに、俺は少なくともモナド則に関してはこの表現で理解できたから、 別の表現を探す気は起こらない
65 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:46:10.84 ] 具体例を知らないのに圏論だけやってもダメなんだ
66 名前:デフォルトの名無しさん [2012/01/04(水) 21:46:16.22 ] father(son(x)) = x は遠回しに見える。それぐらいの意味だ。 後はなんちゅうことないことだ。
67 名前:デフォルトの名無しさん [2012/01/04(水) 21:53:17.25 ] >>65 だけど圏論によい具体例があまりないんだ。 なにかよい例を知っているか? 圏の例は基本的だが,圏の圏の例がより実践的だと思うが。
68 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:53:23.57 ] モナド則は、returnと(>>=)で>>59 みたいに書くほかにreturnと(<=<)でも書ける [1] return <=< x == x [2] x <=< return == x [3] (a <=< b) <=< c == a <=< (b <=< c) [4] (a <=< b) . f = a <=< (b . f) どっちがシンプルに思えるかは人に依るかも
69 名前:デフォルトの名無しさん [2012/01/04(水) 22:14:27.60 ] >>68 こりゃますます常人には分からんな。 スマンが間単に読み方を教えてくれんかな?
70 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:18:57.72 ] >>69 (<=<)はControl.Monadで定義されてるよ。定義は、 f <=< g = \x -> g x >>= f
71 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:42:02.17 ] 定義なんだからモナド則はこれっていう以上の何が必要なんかわからん。 遠回しもくそもないだろ。
72 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:43:16.38 ] 素直に、モナド則が理解できないから詳しく説明してほしい、と言えばいいのに 表現が遠回しだとか、それこそ遠回しに伺っても、期待する返事は来ないぞ (まぁ、単刀直入に訊いても、期待する返事が来るとは限らんけど)
73 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:46:17.58 ] この人は相変わらず質問がヘタだな
74 名前:デフォルトの名無しさん [2012/01/04(水) 22:59:11.16 ] >>71 >>72 この人たちは定義というものはなにかを定義していさえすればよいものだと 思っているらしい。
75 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:02:28.21 ] マジで何言ってんのお前
76 名前:デフォルトの名無しさん [2012/01/04(水) 23:03:18.65 ] ∧_∧ ( ´∀`)< ぬるぽ
77 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:06:15.65 ] 先月と、先々月の数学セミナーの圏論の歩き方におもいっきり載ってたろ・・・。
78 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:12:52.94 ] いや同じものを定義するのにも分り安い方法とそうでない方法があるのは普通のことだろ
79 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:14:30.33 ] >>66 それのどこが何に対して遠回しなのかを説明してくれ そうすれば、君が >>68 の何に対して遠回しと感じているのか分かるかも知れん father(son(x)) = x これは、左辺にある x に対する2個の(この順の)変換が右辺と同等である という事を示していると思う このような意味を表すのに father(son(x)) = x を持ち出すのが遠回しと感じるのなら、 君ならどう式で表現するのだろうか?
80 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:24:29.25 ] せっかく突っ込んで書いてくれたんだから読んでやれよ・・・。
81 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:34:44.98 ] 早くもっと簡潔で直接的なモナド則の書き方書けよ
82 名前:デフォルトの名無しさん [2012/01/04(水) 23:48:28.90 ] >>79 >father(son(x)) = x >これは、左辺にある x に対する2個の(この順の)変換が右辺と同等である >という事を示していると思う うん。だがそれはその式を単にそのまま読んだだけだと思うんだ。 なにが言いたいんだこの式は?何が言えてるんだこの式は?とは思わな いかい? まあそういうことなんだが、皆さんイライラしているようだし、この辺 で寝るよ。かまってくれてありがとう。
83 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:55:17.37 ] f(g(x)) = xという形の等式が直感的に何を意味するかは慣れないと分かりにくい でも一旦慣れれば問題なくなるし、 この内容を簡潔に表現するにはこの式しかないと思うようになる(f . g = idもあるけど) モナド則も似たようなもんじゃね
84 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:09:23.77 ] 俺が分からないのはお前らのせいって言いたいだけじゃん。
85 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:22:26.47 ] >>82 > だがそれはその式を単にそのまま読んだだけだと思うんだ。 > なにが言いたいんだこの式は? 全く逆だ 「x に対して2個の変換 son と father をこの順で適用したものは x と同等である」 という、たまたま今は日本語で表された 「意味」 が何よりも先に先にある (この意味を人に伝えるには何かの言語で表す以外ないから、たまたま日本語で表した) この意味を数式という言語で表せば father(son(x)) = x となる この意味を英語という言語で表せば・・・ この意味をヒンドゥー語という言語で表せば・・・お任せする モナド則も意味が先にあって、それをHaskellの式で表す方法のひとつとして >>59 がある 他にも >>68 の様に表す方法もあるし、もしその意味を日本語で表すなら・・・ ということだ
86 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:31:08.78 ] もしかして数学の定義を使って証明したことがないじゃなかろうか?
87 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 03:04:58.01 ] 関手fmapと自然変換returnと自然変換joinが「モナド」になる っていうのが一番簡潔で直接的なモナド則の書き方 >>= は \f->\g->join (fmap g f)によって定義できる二次的なもの
88 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 03:54:01.40 ] [1] join . join == join . fmap join [2] join . return == id == join . fmap return
89 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 14:48:38.07 ] 犬論で拳論でもいいけど、謙論を忘れずに。
90 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 14:52:37.50 ] >>49 と 計算論 計算可能性とラムダ計算 買ってみようと思う。 他におすすめある?
91 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 14:55:33.27 ] プログラミングの道具としての圏論ならばalgebra of programming一冊各種証明を手で追いながらみっちりやれば充分
92 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 15:20:01.29 ] 中古で六万かよ
93 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 15:49:55.57 ] >>92 Amazon.com 本店(米)の中古はもっと酷い 916.21 ドル でも、Amazon.co.uk なら中古が 20 ポンドで売ってる(国際便もあるみたい)
94 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:09:38.32 ] 大学講義の離散数学で単位ギリギリとった俺は>>49 くらいがちょうどいいかな
95 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:47:12.97 ] もしそれが恥ずかしくないのなら、>>49 でもやばいかも
96 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:49:28.01 ] ttp://blog.ezyang.com/2012/01/why-iteratees-are-hard-to-understand/ MITの学生さんだって。みな頑張れ
97 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:53:03.61 ] >>91-3 どうせ大学の図書館探したら転がってるだろうから、みることは可能だろうよ。
98 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 18:37:14.15 ] お前らは何百年同じ話を続けるつもりなんだ?
99 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 18:46:42.96 ] あと1億年と2000年間
100 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 18:51:23.55 ] いや、あと数年で終わらせるから待ってろ
101 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:17:34.36 ] >>99 8000年過ぎた頃からもっと繰り返したくなった
102 名前:デフォルトの名無しさん [2012/01/05(木) 20:56:35.84 ] >>87 そうだね。 >>86 むしろ定義しか使わん。公式を使ったことはあまりないが。 >>85 >「x に対して2個の変換 son と father をこの順で適用したものは x と同等である」 数学世界の閉じこもりならそれでよいが、それでは世間と話ができんだろ。 >>84 理解できてる、理解できてない、なんてことはまあつまらんことだ。
103 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:02:39.10 ] 85-86への返答からだと、 何を分かってないのか分からんのじゃないかと思う。
104 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:14:39.66 ] >>102 [1] モナド則の意味をできるだけ平易な日本語で表現してほしいのか、 [2] 単にライブラリドキュメントに書かれたモナド則の表現が遠回しだと言いたいだけか [3] それ以外の事が言いたいのか [1] なら素直にそう言え [2] なら言いたいだけ言っていれば良い [3] ならハッキリと意思を伝えろ
105 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:18:19.52 ] この人はもう無理だろ ネタでやってるとしか思えないぐらい質問が要領を得ない
106 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:49:24.22 ] 定義に従うのもいいけど、定義のないものは徹底的に無視するのも数学では重要だと思う Haskellの範囲で定義されていないことをわざわざ調べて付け足す必要はない
107 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:04:55.33 ] モナドじゃないけど、adjunctionの定義は「何が言いたいんだ?」ともどかしかったなあ。 あのhom(FY,X) = hom(Y,GX)という定義式がなぜねじれた形になってるのか、 ずっと疑問だった。
108 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:40:36.54 ] 腐: ホモだから
109 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:59:56.72 ] ほむほむ
110 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:54:31.23 ] 随伴なんて単なる関手の圏における同型な対象にすぎない
111 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:20:01.72 ] ttp://ja.wikibooks.org/wiki/Haskell/%E5%9C%8F%E8%AB%96 圏論知らないなりに↑の説明読んだんだけど、 >モナド は圏から同じ圏へいくつかの追加の構造を提供する特殊な関手 ってところにちょっと引っかかったので2点質問させてください。 1.例えばInt と Maybe Intは別の圏に存在する対象だと読みながら勝手に想像してたんだけど、 この説明からいくと同じ圏に属していると考えてOK? あるいは、Dまでいかない、C'ぐらいの内部的な圏みたいな概念がもしかして存在する? 2.Haskellにおいて圏から別の圏への変換にあたる操作って、具体的には何なんでしょう?
112 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:06:41.22 ] 1.同じ圏の対象とも別の圏の対象とも考えることは可能。 そのリンク先ではHask圏という、Haskellの型が対象で関数の値が射とする圏を考えているので、 その文脈の限りではIntとMaybe Intは同じ圏の対象だと考えて良い。 2.Functor型クラスがHask圏からHask圏への変換(自己関手)を表現していると考えられる。 class Functor (f :: * -> *) where fmap :: (a -> b) -> (f a -> f b) この定義の内、f :: * -> *のところがHask圏の対象である型を、別の型に写像する関数を表現している。 また、fmap :: (a -> b) -> (f a -> f b)のところが射を写像する関数を表現している。
113 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:15:39.92 ] >>112 ありがとうございます、1については多分納得しました。 2は質問が悪かったです。 自己関手ではなく、明確に別の圏と考えられるものに変換しているような関手の具体例が Haskellにあれば教えて欲しかったのです。
114 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:31:14.92 ] 普通の型と[a]のようなリスト型が別の圏の対象であると解釈すれば Functor型クラスが別の圏に変換する関手だ、と考えることもできるよ。 何を圏と考えるかの問題。
115 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:36:15.59 ] >>114 書いてから、何を圏とするかで変わるよな、とは思ったのですが意図を汲み取って頂けて嬉しいです。 Hask圏で考えると、Haskellにおいて別の圏にあたる概念はなさそうですね(?)。
116 名前:デフォルトの名無しさん [2012/01/06(金) 16:45:49.97 ] >>107 それ俺も分からない。なぜ?
117 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:48:49.32 ] Hask圏のサブセットを別の圏と考えたりして色々考えることはできそう。
118 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 20:58:56.44 ] ?一気にレベル上がったな >>115 よくわからんが、型を集合(Set圏の対象)と考える場合、HaskellのFunctorは 型から型(集合から集合)への対応で、Set圏で完結していると考えられるから 基本無理なんじゃない? あるとしたら集合からなにか別の対象を構成して圏自体を構成するとか必要になるのじゃないかと思う。
119 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 21:59:44.43 ] 東京にある6つのキー局の内、製作から財務まで一貫して朝鮮人が行ってるテレビ局が1つ 中国共産党から毎年大量の反日工作費が流れているテレビ局が2つ もろに北朝鮮と繋がっているテレビ局が1つ 年寄はまだまだテレビという外国人に騙され続ける
120 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 22:17:19.97 ] >>116 >>110
121 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 22:37:50.72 ] 説明してくれ。
122 名前:デフォルトの名無しさん [2012/01/07(土) 01:57:09.16 ] まだやってんのか?
123 名前:デフォルトの名無しさん [2012/01/07(土) 13:33:31.17 ] >122 Let's join us!
124 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 14:49:07.40 ] >>59 [1] flip(>>=) f . return == f [2] flip(>>=) return . f == f [3] flip(>>=) g . flip(>>=) f == flip(>>=) (flip(>>=) g . f) この定義から分かることは f と g と return には flip(>>=) を適用できること flip(>>=) f の戻り値の型は f の戻り値の型と同じ (引数の型だけ変わる) ということ つまり、戻り値の型は変えられないが引数の型は変えられるようなものを表現したいんだと思う
125 名前:デフォルトの名無しさん [2012/01/07(土) 15:59:51.70 ] >>124 うん。勿論[1]-[3]は、>>=やfなどの型についてのそういう制約を前提にして いるが、[1]-[3]はそれ以上の条件を表現しているよね。
126 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:31:12.63 ] >>125 == が成立する条件が難しいと思う f==g なら f の型と g の型は等しいとは思うが、それ以上は難しい
127 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 23:46:02.70 ] == を「型が等しい」と解釈するならモナド則は自明 別の意味があるなら == を定義するべき
128 名前:デフォルトの名無しさん [2012/01/08(日) 09:04:29.08 ] >>107 >>110 hom(X,Y) = hom(FX,FY)
129 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 10:07:40.92 ] それはほむ関手と普通の関手Fの合成関手
130 名前:デフォルトの名無しさん [2012/01/08(日) 10:39:44.40 ] Y:=(1/F)W
131 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 11:54:54.22 ] 式だけ書いておけば後は汲みとれるはずだというやつは本当に大嫌いだ。 まさしくクソメン。
132 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:05:09.42 ] >>131 だからさ、詳しく説明して欲しいのなら素直にそう言えって何度言ったら・・・ 説明を求めていないのなら無視しろよ
133 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:08:42.39 ] ほむの中でFが増殖する気持ち悪い関手
134 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:10:29.13 ] 違うね。これはそういう問題じゃない。 それに無視して暗に黙認を形成することは少なくとも俺には絶対にできない。 そういう表明だ。
135 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:16:57.29 ] そもそもスレチだ。
136 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:17:54.40 ] >>134 黙認しないのなら、しっかり質問しろ お前は「嫌いだ」としかまだ言っていない 嫌いだと表明するだけでは残念ながら何も起きないぞ 式だけ書いておけば・・・と言っておきながら、 その式について何も訊いていないだろ >>130 にとっては、お前がこの式の何が分からないのかが分からない状態だと思うが
137 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:21:07.73 ] もう構うなよ… この人は自分で調べないから絶対に具体的な質問出来ない人だよ
138 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:24:51.53 ] >>136 何か起こす?そんなの期待してるから何も出来ないんだよ。 そもそも圏論はスレ違いだ。
139 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:32:03.12 ] 別に説明して欲しい訳じゃなくて、>>130 のやりかたがコミュニケーションとして酷いといってるんじゃないの
140 名前:デフォルトの名無しさん [2012/01/08(日) 12:34:44.10 ] けんかはやめてくれ。みんな俺が悪いんだから。
141 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 12:49:17.63 ] わかればいいが、普段からそんな話の展開をしてるなら改めたほうがいい。
142 名前:デフォルトの名無しさん [2012/01/08(日) 13:05:02.48 ] >>141 不粋だな
143 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 13:07:29.45 ] template haskellの機能を使ってモジュール内で定義されてる関数の名前全部取得するような事ができるみたいなんだよ これをどうやって実現してるかというと、どうやら展開時に自分自身が記述されてるファイルをIO使って読み込んで解析してるらしい よく聞くコンパイルタイムIOという空恐ろしいものはこうやって使うのかといういい実例だと思ったね
144 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 13:15:03.18 ] >>143 template haskell って地味に良い拡張機能だよな HaskellDB で使って実感したわ 対応した IDE ができるともっと良いが
145 名前:デフォルトの名無しさん [2012/01/08(日) 13:20:27.44 ] まともなIDEがない時点でC以下
146 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 14:15:39.33 ] IDE で C と比べたって意味無いよ IDE で言語選ぶわけじゃないし
147 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 14:16:43.08 ] ghc-modじゃ不足でしょうか、、、
148 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 14:55:26.81 ] 文句あるなら造れ そして英雄となれ
149 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 14:56:05.77 ] IDEで言語選ばないの? あなたはIDEで言語を選ばないの? 多くの人はIDEで言語を選ばないの? すべての人はIDEで言語を選ばないの?
150 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 15:02:26.58 ] ドカタが仕事にありつける言語にはIDEがある、が正解
151 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 15:03:00.33 ] 量化を取り除くと自己言及の誤謬に陥るのでNG
152 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 15:15:52.21 ] >>147 ghc-mod って、template haskell に対応してたっけ たとえば、Template haskell のチュートリアルに ------------------------------- module TupleReplicate where import Language.Haskell.TH tupleReplicate :: Int -> Q Exp tupleReplicate n = do id <- newName "x" return $ LamE (VarP id) (TupE $ replicate n $ VarE id) ------------------------------- という例がある $(tupleReplicate 2) が a -> (a, a) という型の関数 $(tupleReplicate 3) が a -> (a, a, a) という型の関数 と ghc-mod は教えてくれる? 言っておくが、ghc-mod がクソとか役に立たんと言ってるわけではない