関数型プログラミング言語Haskell Part16
レス数が1000を超えています。これ以上書き込みはできません。
0001a36 ◆K0BqlCB3.k
2011/10/07(金) 12:27:25.71ttp://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/
0951デフォルトの名無しさん
2012/01/02(月) 12:19:02.82disられたってどういうこと?
0952デフォルトの名無しさん
2012/01/02(月) 12:26:28.49特にdoを使って書いてると手続き型とほとんど変わらんし、似たようなスパゲティ化もしやすいし。
0953デフォルトの名無しさん
2012/01/02(月) 12:30:08.48和田(笑)
0954デフォルトの名無しさん
2012/01/02(月) 12:54:56.37http://togetter.com/li/215803
ここにまとめられてる湯浅先生の発言を、
キチガイが拡大解釈して必死に広めてるだけ。
キチガイ死ねよ。
0955デフォルトの名無しさん
2012/01/02(月) 13:02:10.78こういう人は具体的に何故モグリなのか全然説明してくれないから説得力が全くない
権威主義の人って大体そんな感じ
0956デフォルトの名無しさん
2012/01/02(月) 13:29:14.03なんで自分で噂に根拠与えちゃってるの?
そのままほっとけば単なる噂ですんだのに。
0957デフォルトの名無しさん
2012/01/02(月) 13:43:07.49最近の関数型はだらだら引き伸ばしているだけ。
0958デフォルトの名無しさん
2012/01/02(月) 13:44:07.71根拠のない噂を広める罪がわからないゴミカスのようなキチガイは死ねよ。
0959デフォルトの名無しさん
2012/01/02(月) 14:06:34.63つまり、プログラマが式をどう考えるかや、コンパイラが式をどう扱うかではなく、
式をどう書くかによって関数型かそうでないかを判断しているのか、お前は
じゃあ、お前の言う関数型を捨てた書き方である
do {x <- getLine; putStr $ "> " ++ x}
これを
getLine >>= putStr . ("> " ++)
こう書いたら、関数型に戻るのか?
あともう一つ、本当にdo表記で似たようなスパゲティ化が起きやすいのか?
お前はdo表記で頻繁にスパゲティ化してしまっているのか?
スパゲティ化という事は、実行順序、Haskellなら計算順序が複雑に絡まるんだよな
それはdo表記だから絡まるのか? むしろdo表記の方が絡みにくくないか?
0960デフォルトの名無しさん
2012/01/02(月) 14:14:42.26前者に関しては、俺の感覚ではイエス。
後者に関しては俺の書き方が悪かった。
手続き的なコードが縦にダラダラ長くなるとぐちゃぐちゃに見えてキモいってだけなんだ。
0961デフォルトの名無しさん
2012/01/02(月) 14:27:45.340962デフォルトの名無しさん
2012/01/02(月) 14:33:23.75どんなもの達をもってきても、それらが「大体同じである」と見る視点はいくら
でも作れるわけだが、ListとIOとMaybeは大体同じだというモナドの視点はそんな
ナンセンスな視点ではないのだね?
0963デフォルトの名無しさん
2012/01/02(月) 15:05:16.12> そんなナンセンスな視点ではないのだね?
「そんな」がどんなのを指しているのか曖昧だな
もっとはっきりと言ってくれ
大体同じであるという視点はどのような集合に対しても適用できるけど、
「どう同じなのかが論理的に説明できる」ことと、
その視点が応用する上で「役に立つ」こと、
この2点が無いとせっかくの発見も後の時代まで残らない
モナドはとりあえず今のところ残ってる
0964デフォルトの名無しさん
2012/01/02(月) 15:12:39.30お前の手続き的なコードが縦に「ダラダラ長くなる」原因は何だ?
それはdo表記のせいなのか?
お前はもしかして、自分のコードがdo表記で縦にダラダラ長くなったら、
その原因がdo表記にあると考えて、getLine >>= putStr . ("> " ++)
みたいな表記に直すのか?
それとも、キモいって言うだけで、後が続かず終わってるのか?
もし本当にそうなら、関数型や手続き型うんぬんの前に、
プログラムそのもの構造を学んだ方が良いぞ(SICP なんか読みやすくてお勧め)
0965デフォルトの名無しさん
2012/01/02(月) 15:26:49.59縦に長くならなくても、
do {x <- getLine; putStr $ "> " ++ x}
のxも、関数型からすれば嫌だろ。
0966デフォルトの名無しさん
2012/01/02(月) 15:37:53.22では構文的な構造が似ている
let x = 3 in f x
これも「関数型からすれば嫌」なのか?
0967デフォルトの名無しさん
2012/01/02(月) 15:53:19.26最初からモナドと言わずにリストと言えば通じやすかったと思うが。
0968デフォルトの名無しさん
2012/01/02(月) 16:15:00.92すまん、言わんとしていることがよく分からん
俺の発言の何に対する意見なんだ?
通じやすかったというのは世間にか? それともここ一連の会話の誰かにか?
前者なら最初から委員会の連中はリストはリストと言っている(モナドは後付け)
後者なら誰だよそんな事言ったの
俺は >>962 の
ListとIOとMaybeは大体同じだというモナドの視点はナンセンスかどうか、に対して、
モナドはどう同じなのかが論理的に説明できており、かつ役に立つ視点である、
だからナンセンスではない、という自分の考えを謂わば逆説的に述べただけだよ
0969デフォルトの名無しさん
2012/01/02(月) 16:34:00.46それはスーフリの方。
>>959
do表記は手続きっぽくなるから、スパゲティーメイカーになりやすいかも。
スパゲティーにするならせめてカルボナーラかミートソースにしてくれよ。
0970デフォルトの名無しさん
2012/01/02(月) 16:36:45.39ちゃんと自分の言葉で説明できるか?
0971デフォルトの名無しさん
2012/01/02(月) 16:39:56.99俺の方が曖昧な言い方ですまんかった。
まず通じやすかったというのは世間に対してという意味だった。
「ListとIOとMaybeは大体同じだ」というときの共通性が、言ってしまえばリスト化
(多元化)にあるのだとすれば、モナドなどというよりリストと言った方が
伝わり易いと思ったわけだ。また曖昧なこと言ったかな。
(ナンセンスうんぬんの方はもういいよ)
0972デフォルトの名無しさん
2012/01/02(月) 16:57:05.72あぁ、なるほどな
> 「ListとIOとMaybeは大体同じだ」というときの共通性が、
> 言ってしまえばリスト化(多元化)にあるのだとすれば、
そう解釈してしまったのなら、
> モナドなどというよりリストと言った方が伝わり易いと思ったわけだ。
と言うのも十分に分かる、というか当然の反応だ
ただ残念ながら、少なくとも「それらに見いだした共通性はリスト化だ」
という解釈に関しては間違っている(多元化の意味は分からんが)
Wadler氏が List、IO、Maybeなどにどのような共通性を感じたのかは
Monad型クラスの関数に間接的に表れてはいるが、俺の力ではとても一言で言えない
それこそちゃんと知るには彼の論文や基になったMoggi氏の論文を読まないといけない
ただ、一般的なプログラマには「Monad型クラスの関数がモナドに共通する構造だ」
と言いうだけで応用上は十分だと思う
その共通構造をモナドが応用される前のListやIOに見いだしたと言っていい
0973デフォルトの名無しさん
2012/01/02(月) 18:16:38.74よくわかってないが、非決定計算、副作用、継続についてはMoggiの最初の論文の中で定式化されてる。
共通性といいたいところは多分普遍的性質のことだろうと思う。
普遍性の構造が共通している、というかそれぞれモナドで整理可能だからモナドなんだろう。
0974デフォルトの名無しさん
2012/01/02(月) 18:20:45.89デバッグが困難になる。
0975デフォルトの名無しさん
2012/01/02(月) 18:25:00.71普遍的性質って具体的には?
0976デフォルトの名無しさん
2012/01/02(月) 18:27:24.820977デフォルトの名無しさん
2012/01/02(月) 18:33:35.46ある一つの性質から全体の性質が定まることで、
モナドの場合はそれが入れ子状になっている、ようだ。
正直そんな説明できるほどわかってない。
0978デフォルトの名無しさん
2012/01/02(月) 18:46:14.03それは全く説明になっていないと思うぞ
>>970 が訊いているのは手続きっぽくなるとスパゲティになる理由だ
[1] 手続きっぽくなる --> [2] スパゲティになる
原因 [1] によって結果 [2] になることを筋道を立てて説明してほしいのだろう
しかし、デバッグが困難になるというのは、さらにその先の結果だ
[2] スパゲティになる --> [3] デバッグが困難になる
デバッグが困難になるからスパゲティになるのではない([3]-->[2])
スパゲティだからデバッグが困難になる([2]-->[3])
0979デフォルトの名無しさん
2012/01/02(月) 19:24:23.52フラクタル?
0980デフォルトの名無しさん
2012/01/02(月) 19:36:37.35飛躍してるように見えるがそれが結論だ。
0981デフォルトの名無しさん
2012/01/02(月) 19:49:15.510982デフォルトの名無しさん
2012/01/02(月) 19:52:21.42そういう方向には関与しないほうがいい。梯子はずしてくる人ばかりで構成されているから。
何事も普通の日常の出来事に置き換えて考えてみるべき。
日常の出来事として絶対おかしいと思うことなら、どのように脚色してもおかしい。
0983デフォルトの名無しさん
2012/01/02(月) 20:03:55.420984デフォルトの名無しさん
2012/01/02(月) 20:05:53.170985デフォルトの名無しさん
2012/01/02(月) 20:11:31.78もっと語ってくれないか。
そういう方向?梯子はずす?日常の出来事?
0986デフォルトの名無しさん
2012/01/02(月) 20:20:36.64勧誘系詐欺の大部分は友人や家族に自分が勧誘された内容を説明すると
途中で詐欺にあっていることに気づくそうだ。
閉じた環境でそれっぽくみえても実際まわりに説明して中身が無い、実効性がない
違和感が出るというか詐欺だと感じたらほぼ詐欺。
0987デフォルトの名無しさん
2012/01/02(月) 20:36:23.140988デフォルトの名無しさん
2012/01/02(月) 20:50:27.04詐欺?閉じた環境?
もう少し。
0989デフォルトの名無しさん
2012/01/02(月) 21:01:55.91これ以上はない、というか努力はわかるが聞き下手だな。
0990デフォルトの名無しさん
2012/01/02(月) 21:21:18.74きみが日常の出来事に照らして 0.999.... と 1 が同じではおかしいと感じるなら、
きみの解釈の世界ではそれが正しいのだろう
ただ残念ながら、一般に 0.999.... というのは
そういう数値そのものをダイレクトに表した記法ではない
0.999.... と続いて目指している目標となる数値を表している記法である
単に極限 lim を使った記法の構文糖衣(シンタックスシュガー)だ
ちなみに、0.999.... が目指している先はなんと 1 だったりする
0991デフォルトの名無しさん
2012/01/02(月) 21:30:57.750992デフォルトの名無しさん
2012/01/02(月) 21:47:58.61わかった、ことにするわ。
0993デフォルトの名無しさん
2012/01/02(月) 21:53:45.460994デフォルトの名無しさん
2012/01/02(月) 22:00:24.520995デフォルトの名無しさん
2012/01/02(月) 22:18:23.810996デフォルトの名無しさん
2012/01/02(月) 22:21:00.43http://toro.2ch.net/test/read.cgi/tech/1325510368/
馬鹿のゴミが入っちゃったけど、どうぞ
0997デフォルトの名無しさん
2012/01/03(火) 03:59:10.100998デフォルトの名無しさん
2012/01/03(火) 04:29:40.98え?原典辿らずにエラソー言ってドヤ顔してたわけ?馬鹿だろ。
0999デフォルトの名無しさん
2012/01/03(火) 04:33:37.91やっぱそうだよな。
関数型言語って、スパゲティになりやすい。
宣言的で1つ1つ完結しているから理解しやすいとか馬鹿が言うけど、
実際には宣言的だからこそスパゲッティコードになる。
1000デフォルトの名無しさん
2012/01/03(火) 04:34:20.3210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。