【数学者】Haskellはクソ言語【オナニー】

このエントリーをはてなブックマークに追加
932デフォルトの名無しさん:2010/01/11(月) 01:40:31
買ってないけど霧中で挫折した
だけども、一回挑戦する

933デフォルトの名無しさん:2010/01/11(月) 10:38:12
>>931
>>932
頑張れ
934デフォルトの名無しさん:2010/01/11(月) 23:01:47
6.12ベースのHaskell Platformでたら再開する予定
935デフォルトの名無しさん:2010/01/13(水) 01:08:39
Java >>>>>>>>>>> 2^100000000000000000000000000000ポテンシャル障壁>>>>>>>>>>>>>haskell
936デフォルトの名無しさん:2010/01/13(水) 01:10:37
haskellはごみ、いや、ごみいか
937デフォルトの名無しさん:2010/01/16(土) 19:45:11
darcsのおかげで目がさめた。遅い、不安定、結果として使い難い。
938デフォルトの名無しさん:2010/01/24(日) 05:46:04
確かにdarcsは遅いが、設計自体が古いのも原因だろうな
939デフォルトの名無しさん:2010/01/26(火) 21:28:16
何にしてもHaskellへの盲目的信仰から抜けられてよかった。ありがとうdarcs!
俺はガチガチに静的チェックされた完璧なクソを作りたいのではなかったのだ。
940デフォルトの名無しさん:2010/01/27(水) 09:51:10
つまりJavaをやめてPythonにするんだな?
941デフォルトの名無しさん:2010/01/29(金) 23:01:09
>>935はモナドだな。Javaの後にHaskellをやるということか。
942デフォルトの名無しさん:2010/01/29(金) 23:33:58
>>935
ラムダ計算を理解しないとHaskellはできないので、JavaからHaskellまでの間に非常に大きなポテンシャル障壁がある。
遅延評価のせいでサンクが肥大化するので、アルゴリズムが悪くメモリが小さいと、Haskellをやる前にオーバーフローするだろう
943デフォルトの名無しさん:2010/01/30(土) 19:10:01
Javaをやめるといったように読めたわけ?信仰ってこわいね
それともわざとJavaに話をすりかえたの?それも狂ってるね
944デフォルトの名無しさん:2010/01/30(土) 19:21:47
>>943
ただの事実だ
945デフォルトの名無しさん:2010/01/30(土) 20:01:34
ラムダ抽象とか簡約とか覚えないと使えない言語じゃ
いつまでたってもデカいシステムつくれないんじゃ
946デフォルトの名無しさん:2010/01/30(土) 21:59:46
>>945
デカいシステムを作るのが目的ではないし、
ラムダ計算を知らなくても使えないことはない
しかし知っているに越したことはない
947デフォルトの名無しさん:2010/01/30(土) 22:05:58
>>945
それにデカいシステムを簡潔に書けるのが関数型言語の強みだ。
948デフォルトの名無しさん:2010/01/30(土) 22:44:41
しかしできあがったものがクソ遅くて不安定で使いものにならないのが純粋関数型の弱みだ。
949デフォルトの名無しさん:2010/01/30(土) 22:49:45
嫌なら使わなけりゃいいじゃない
お前はAPLも使ったことないだろ?
950デフォルトの名無しさん:2010/01/30(土) 23:06:52
APLは昔つかってたけど。もうJに乗りかえちゃってるけどな。
951デフォルトの名無しさん:2010/01/30(土) 23:11:50
なんだ別人か
952デフォルトの名無しさん:2010/01/31(日) 07:49:58
LispにしろHaskellにしろ、関数値を表現する記法に採用しているというだけで、
λカリキュラスはどうでもいいからな。
953デフォルトの名無しさん:2010/01/31(日) 10:07:58
キャベツを千切りにします
肉を炒めます
千切りのキャベツを加えて半生程度にサラッと炒めます

ご飯に乗せてしょうゆかける
954デフォルトの名無しさん:2010/01/31(日) 19:54:45
最後にマヨネーズをたっぷりかけて完成
955デフォルトの名無しさん:2010/02/05(金) 19:51:36
darcsは存在自体が害悪マジで消えてくれ
956デフォルトの名無しさん:2010/02/07(日) 01:20:57
この言語ばっかり使っていると脳ミソが退化するね。
危険だ。
957デフォルトの名無しさん:2010/02/07(日) 04:09:17
脳みそが変容したら凄すぎですがな
958デフォルトの名無しさん:2010/03/04(木) 12:25:40
( ´・ω・`)
959デフォルトの名無しさん:2010/03/13(土) 02:41:54
(´・ω・`)
960デフォルトの名無しさん:2010/03/13(土) 14:12:16
IO処理を他人に丸投げしておいて
「副作用はありません」
てズルイと思います
961デフォルトの名無しさん:2010/03/13(土) 14:53:35
てめぇドサクサにまぎれてOOサンもdisってんじゃねぇよ
962デフォルトの名無しさん:2010/03/13(土) 14:53:40
実際に副作用がないんだから仕方ない
963デフォルトの名無しさん:2010/08/06(金) 01:47:24
博士専用言語ワロタ
964デフォルトの名無しさん:2010/08/17(火) 17:28:00
モナドがゲーム出演と聞いて
965デフォルトの名無しさん:2010/08/25(水) 20:31:42
あまりの過疎スレぶりに(ry
966デフォルトの名無しさん:2010/08/25(水) 22:58:48
だよね、よくこれで本をだす出版社があるよな
967デフォルトの名無しさん:2010/08/26(木) 08:01:00
それは本買った俺をディスってんのかよ
968デフォルトの名無しさん:2010/08/27(金) 00:51:43
スレタイが良くない!
969デフォルトの名無しさん:2010/09/22(水) 00:10:52
>>967
詐欺にかかったりしてない?大丈夫?
970デフォルトの名無しさん:2010/09/26(日) 09:36:45
初心者を助けてくれる、do記法展開ツールとかないかなー
971デフォルトの名無しさん:2010/09/26(日) 09:58:51
do {[1,2];a <- [3,4];return a}
この結果は[3,4,3,4]

何が起こった!!何故殺した!って言いたい
972デフォルトの名無しさん:2010/09/26(日) 10:19:13
[1,2] >> [3,4]が[3,4,3,4]になる訳か、リストモナドを誤解していた。把握した!
973デフォルトの名無しさん:2010/09/27(月) 06:48:25
[1,2] >>= (\x -> [3,4]) >>= return

こういう置き換え、あんまり得意じゃないから、
やってみた。
974デフォルトの名無しさん:2010/09/27(月) 07:19:21
違うか。
こっちか。

[1,2] >>= (\_ -> [3,4]) >>= \a -> return a
975デフォルトの名無しさん:2010/09/27(月) 08:49:35
おお、どうも。参考までに一応上の結果に辿りつくまでの流れを書いとくよ
仕様通りに解釈すると
[1,2] >> (let ok x = case x of {a -> return a; _ -> fail "...";}in [3,4] >>= ok)
_はパターンマッチでかぶってる言われるので省略すると
[1,2] >> (let ok x = return x in [3,4] >>= ok)
ラムダにしてみると(ここ、少し自信ない)
[1,2] >> [3,4] >>= (\x -> return x)
右の式をη変換
[1,2] >> [3,4] >>= return
モナドの性質より
[1,2] >> ([3,4] >>= return)
モナドの性質より
[1,2] >> [3,4]
976デフォルトの名無しさん:2010/09/27(月) 21:10:52
Template Haskell で仕様通りに do 記法展開
出力が不親切で入力がハードコードだけど…

{-# LANGUAGE TemplateHaskell #-}
import Language.Haskell.TH

expr = [| do
[1,2]
a <- [3,4]
return a
|]

main = runQ (undo expr) >>= putStrLn . pprint

undo :: ExpQ -> ExpQ
undo expq = do
DoE stmts <- runQ expq
toExpQ stmts

toExpQ :: [Stmt] -> ExpQ
toExpQ [NoBindS expr] = return expr
toExpQ (BindS pat expr : xs) = do
sym <- newName "x"
infixE (Just (return expr)) (varE (mkName "GHC.Base.>>="))
(Just (lamE [varP sym]
(caseE (varE sym)
[ match (return pat) (normalB (toExpQ xs)) []
, match wildP (normalB (appE (varE (mkName "GHC.Base.fail")) (litE (stringL "...")))) []])))
toExpQ (LetS decls : xs) = letE (map return decls) (toExpQ xs)
toExpQ (NoBindS expr : xs) = [| $(return expr) >> $(toExpQ xs) |]
977デフォルトの名無しさん:2010/10/02(土) 11:06:19
面白そうだけど、何をやっているのかさっぱりわからんぬ
978デフォルトの名無しさん:2010/10/03(日) 23:21:52
驚愕、天使は巨乳だった
979デフォルトの名無しさん:2010/10/11(月) 13:56:48
ttp://narayama.naist.jp/research/TRS.html
ここに載ってる例をHaskellで動かしたいが簡約(step関数)で詰まった
こーど
ttp://codepad.org/fAZ6d19B

思ったより大分苦戦、暇な人がいたら手伝ってください
980デフォルトの名無しさん:2010/10/11(月) 19:08:53
>>979
http://codepad.org/mp5y0cH5
5分もかかっちゃった
981デフォルトの名無しさん
5分とかテラ速いすね
参考にさせて頂きます

自分でも何とか、でけたわ
ttp://codepad.org/0qmcBVeF