【数学者】Haskellはクソ言語【オナニー】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2005/09/30(金) 01:34:050931デフォルトの名無しさん
2010/01/10(日) 22:31:50だけどもう一回挑戦する
0932デフォルトの名無しさん
2010/01/11(月) 01:40:31だけども、一回挑戦する
0933デフォルトの名無しさん
2010/01/11(月) 10:38:12>>932
頑張れ
0934デフォルトの名無しさん
2010/01/11(月) 23:01:470935デフォルトの名無しさん
2010/01/13(水) 01:08:390936デフォルトの名無しさん
2010/01/13(水) 01:10:370937デフォルトの名無しさん
2010/01/16(土) 19:45:110938デフォルトの名無しさん
2010/01/24(日) 05:46:040939デフォルトの名無しさん
2010/01/26(火) 21:28:16俺はガチガチに静的チェックされた完璧なクソを作りたいのではなかったのだ。
0940デフォルトの名無しさん
2010/01/27(水) 09:51:100941デフォルトの名無しさん
2010/01/29(金) 23:01:090942デフォルトの名無しさん
2010/01/29(金) 23:33:58ラムダ計算を理解しないとHaskellはできないので、JavaからHaskellまでの間に非常に大きなポテンシャル障壁がある。
遅延評価のせいでサンクが肥大化するので、アルゴリズムが悪くメモリが小さいと、Haskellをやる前にオーバーフローするだろう
0943デフォルトの名無しさん
2010/01/30(土) 19:10:01それともわざとJavaに話をすりかえたの?それも狂ってるね
0944デフォルトの名無しさん
2010/01/30(土) 19:21:47ただの事実だ
0945デフォルトの名無しさん
2010/01/30(土) 20:01:34いつまでたってもデカいシステムつくれないんじゃ
0946デフォルトの名無しさん
2010/01/30(土) 21:59:46デカいシステムを作るのが目的ではないし、
ラムダ計算を知らなくても使えないことはない
しかし知っているに越したことはない
0947デフォルトの名無しさん
2010/01/30(土) 22:05:58それにデカいシステムを簡潔に書けるのが関数型言語の強みだ。
0948デフォルトの名無しさん
2010/01/30(土) 22:44:410949デフォルトの名無しさん
2010/01/30(土) 22:49:45お前はAPLも使ったことないだろ?
0950デフォルトの名無しさん
2010/01/30(土) 23:06:520951デフォルトの名無しさん
2010/01/30(土) 23:11:500952デフォルトの名無しさん
2010/01/31(日) 07:49:58λカリキュラスはどうでもいいからな。
0953デフォルトの名無しさん
2010/01/31(日) 10:07:58肉を炒めます
千切りのキャベツを加えて半生程度にサラッと炒めます
ご飯に乗せてしょうゆかける
0954デフォルトの名無しさん
2010/01/31(日) 19:54:450955デフォルトの名無しさん
2010/02/05(金) 19:51:360956デフォルトの名無しさん
2010/02/07(日) 01:20:57危険だ。
0957デフォルトの名無しさん
2010/02/07(日) 04:09:170958デフォルトの名無しさん
2010/03/04(木) 12:25:400959デフォルトの名無しさん
2010/03/13(土) 02:41:540960デフォルトの名無しさん
2010/03/13(土) 14:12:16「副作用はありません」
てズルイと思います
0961デフォルトの名無しさん
2010/03/13(土) 14:53:350962デフォルトの名無しさん
2010/03/13(土) 14:53:400963デフォルトの名無しさん
2010/08/06(金) 01:47:240964デフォルトの名無しさん
2010/08/17(火) 17:28:000965デフォルトの名無しさん
2010/08/25(水) 20:31:420966デフォルトの名無しさん
2010/08/25(水) 22:58:480967デフォルトの名無しさん
2010/08/26(木) 08:01:000968デフォルトの名無しさん
2010/08/27(金) 00:51:430969デフォルトの名無しさん
2010/09/22(水) 00:10:52詐欺にかかったりしてない?大丈夫?
0970デフォルトの名無しさん
2010/09/26(日) 09:36:450971デフォルトの名無しさん
2010/09/26(日) 09:58:51この結果は[3,4,3,4]
何が起こった!!何故殺した!って言いたい
0972デフォルトの名無しさん
2010/09/26(日) 10:19:130973デフォルトの名無しさん
2010/09/27(月) 06:48:25こういう置き換え、あんまり得意じゃないから、
やってみた。
0974デフォルトの名無しさん
2010/09/27(月) 07:19:21こっちか。
[1,2] >>= (\_ -> [3,4]) >>= \a -> return a
0975デフォルトの名無しさん
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]
0976デフォルトの名無しさん
2010/09/27(月) 21:10:52出力が不親切で入力がハードコードだけど…
{-# 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) |]
0977デフォルトの名無しさん
2010/10/02(土) 11:06:190978デフォルトの名無しさん
2010/10/03(日) 23:21:520979デフォルトの名無しさん
2010/10/11(月) 13:56:48ここに載ってる例をHaskellで動かしたいが簡約(step関数)で詰まった
こーど
ttp://codepad.org/fAZ6d19B
思ったより大分苦戦、暇な人がいたら手伝ってください
0980デフォルトの名無しさん
2010/10/11(月) 19:08:53http://codepad.org/mp5y0cH5
5分もかかっちゃった
0981デフォルトの名無しさん
2010/10/11(月) 19:33:54参考にさせて頂きます
自分でも何とか、でけたわ
ttp://codepad.org/0qmcBVeF
レス数が950を超えています。1000を超えると書き込みができなくなります。