買ってないけど霧中で挫折した
だけども、一回挑戦する
6.12ベースのHaskell Platformでたら再開する予定
935 :
デフォルトの名無しさん:2010/01/13(水) 01:08:39
Java >>>>>>>>>>> 2^100000000000000000000000000000ポテンシャル障壁>>>>>>>>>>>>>haskell
936 :
デフォルトの名無しさん:2010/01/13(水) 01:10:37
haskellはごみ、いや、ごみいか
darcsのおかげで目がさめた。遅い、不安定、結果として使い難い。
確かにdarcsは遅いが、設計自体が古いのも原因だろうな
何にしてもHaskellへの盲目的信仰から抜けられてよかった。ありがとうdarcs!
俺はガチガチに静的チェックされた完璧なクソを作りたいのではなかったのだ。
つまりJavaをやめてPythonにするんだな?
>>935はモナドだな。Javaの後にHaskellをやるということか。
>>935 ラムダ計算を理解しないとHaskellはできないので、JavaからHaskellまでの間に非常に大きなポテンシャル障壁がある。
遅延評価のせいでサンクが肥大化するので、アルゴリズムが悪くメモリが小さいと、Haskellをやる前にオーバーフローするだろう
Javaをやめるといったように読めたわけ?信仰ってこわいね
それともわざとJavaに話をすりかえたの?それも狂ってるね
ラムダ抽象とか簡約とか覚えないと使えない言語じゃ
いつまでたってもデカいシステムつくれないんじゃ
>>945 デカいシステムを作るのが目的ではないし、
ラムダ計算を知らなくても使えないことはない
しかし知っているに越したことはない
>>945 それにデカいシステムを簡潔に書けるのが関数型言語の強みだ。
しかしできあがったものがクソ遅くて不安定で使いものにならないのが純粋関数型の弱みだ。
嫌なら使わなけりゃいいじゃない
お前はAPLも使ったことないだろ?
APLは昔つかってたけど。もうJに乗りかえちゃってるけどな。
なんだ別人か
LispにしろHaskellにしろ、関数値を表現する記法に採用しているというだけで、
λカリキュラスはどうでもいいからな。
キャベツを千切りにします
肉を炒めます
千切りのキャベツを加えて半生程度にサラッと炒めます
ご飯に乗せてしょうゆかける
最後にマヨネーズをたっぷりかけて完成
darcsは存在自体が害悪マジで消えてくれ
この言語ばっかり使っていると脳ミソが退化するね。
危険だ。
脳みそが変容したら凄すぎですがな
958 :
デフォルトの名無しさん:2010/03/04(木) 12:25:40
( ´・ω・`)
959 :
デフォルトの名無しさん:2010/03/13(土) 02:41:54
(´・ω・`)
IO処理を他人に丸投げしておいて
「副作用はありません」
てズルイと思います
てめぇドサクサにまぎれてOOサンもdisってんじゃねぇよ
実際に副作用がないんだから仕方ない
博士専用言語ワロタ
モナドがゲーム出演と聞いて
あまりの過疎スレぶりに(ry
だよね、よくこれで本をだす出版社があるよな
それは本買った俺をディスってんのかよ
スレタイが良くない!
初心者を助けてくれる、do記法展開ツールとかないかなー
do {[1,2];a <- [3,4];return a}
この結果は[3,4,3,4]
何が起こった!!何故殺した!って言いたい
[1,2] >> [3,4]が[3,4,3,4]になる訳か、リストモナドを誤解していた。把握した!
[1,2] >>= (\x -> [3,4]) >>= return
こういう置き換え、あんまり得意じゃないから、
やってみた。
違うか。
こっちか。
[1,2] >>= (\_ -> [3,4]) >>= \a -> return a
おお、どうも。参考までに一応上の結果に辿りつくまでの流れを書いとくよ
仕様通りに解釈すると
[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]
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) |]
面白そうだけど、何をやっているのかさっぱりわからんぬ
978 :
デフォルトの名無しさん:2010/10/03(日) 23:21:52
驚愕、天使は巨乳だった