[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
131: デフォルトの名無しさん [] 2020/03/30(月) 18:05:04.07 ID:Dztwglzx 型クラスとインターフェースがなんとなく似てるので、 型クラスのようなことをインターフェースでまねしようとしてなんか違う…ってなってたけど、やっとなぜなのかわかった インターフェース(クラスポリモーフィズム)って、そもそも型クラスとは全く別物で、むしろ存在型の一例になってるだな やっぱり型クラスは型クラスで、型クラスのない言語でこ対応物なんてなかったんや http://mevius.5ch.net/test/read.cgi/tech/1581326256/131
197: デフォルトの名無しさん [sage] 2020/04/12(日) 14:46:14.07 ID:qLx35nn/ 目的は二つ 式を評価し過ぎないこと 副作用を実行し過ぎないこと 手段はただ一つ 最外簡約 http://mevius.5ch.net/test/read.cgi/tech/1581326256/197
314: デフォルトの名無しさん [sage] 2020/05/07(木) 10:57:00.07 ID:zCrpEpjK 書籍「関数プログラミング 珠玉のアルゴリズムデザイン」で分からない所があります。 2ページ目3行目 xsに含まれない最小の数は、filter (<= n) xs に含まれない最小の数ということになる。 ここで < ではなく、<= なのは何故でしょうか。 < を使って条件を厳しくしても、 xs = [0], n = 1 ===> filter (<n) xs = [0] [0] に含まれない最小数 = 1 xs = [1], n = 1 ===> filter (<n) xs = [] [] に含まれない最小数 = 0 このように問題無いように思えます。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/314
340: デフォルトの名無しさん [sage] 2020/05/29(金) 07:22:48.07 ID:mJaFRwIH GoとRustが無かった時代には長所がいっぱいあったんだろう もし、その時代のコードを変更することなく今使えるならそれも長所だが http://mevius.5ch.net/test/read.cgi/tech/1581326256/340
496: デフォルトの名無しさん [sage] 2020/09/09(水) 19:58:00.07 ID:7PwBIIdR 「Haskellの美しさを知っている人は、人生に絶望することはない。Haskellで世界を変えたい。」などと表紙に書かれているHaskellの本が ありますが、そんな大げさなものでしょうか? 単なる一プログラミング言語ではないんですか? http://mevius.5ch.net/test/read.cgi/tech/1581326256/496
520: デフォルトの名無しさん [sage] 2020/09/17(木) 10:32:26.07 ID:2a8IoKJu 見つけた https://qiita.com/Guvalif/items/7f893d9a078e03c9e425 このサイトの人がまとめたpdfに書いてある とは言ってもやはりclosed categoryは仮定してる やっぱりapplicativeはmonadと違って“内部ホム”を持たない圏では定義できないんだろな “内部ホム”もつ圏でmonoidal functorに<*>を定義するのはわりと簡単だけど↓ F(X) × F(Y^X) →F(X×Y^X) (coherence) →F(Y) (F(eval)) https://en.m.wikipedia.org/wiki/Monoidal_functor pureが全然できんなぁと思ってたら“strong”という条件からpureが作れるんだな まぁHaskellて圏の話するときはHASKて言えればいいんだからコレでわかったことにしよ http://mevius.5ch.net/test/read.cgi/tech/1581326256/520
574: デフォルトの名無しさん [sage] 2020/11/16(月) 23:33:39.07 ID:bCg5e61i >>567 もうとっくに解決したかもしれませんが、評価の順は trace 関数でも確認できます。 import Debug.Trace g :: Int -> Int -> Int g x y = trace ("g") (x + y) main :: IO () main = do let a = trace ("a") 1 let b = trace ("b") 2 let c = (g $! a) $! b putStrLn $ show c これを実行すれば、b a g 3 の順に出力されます。 正格評価されていると言えます。 ちなみに、($!) を ($) に変えれば、g a b 3 の順に出力されます。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/574
672: デフォルトの名無しさん [] 2021/01/21(木) 09:21:08.07 ID:mwzMDOkA これも ・最適化の方法が処理系(GHC)次第で決まり、プログラマーの認識内に無い。 GHCに対してひたすらトライアンドエラー http://mevius.5ch.net/test/read.cgi/tech/1581326256/672
683: デフォルトの名無しさん [sage] 2021/01/24(日) 13:21:27.07 ID:vsDmG4Mq >>681 do記法という言語機能は、上から下への命令の実行を記述するものではない モナドの組み合わせ方を宣言しているだけ IOのようなモナドの定義に対してはたまたま命令型言語のようになるだけ 言語レベルで命令を上から下へ実行しているわけではない http://mevius.5ch.net/test/read.cgi/tech/1581326256/683
840: デフォルトの名無しさん [sage] 2021/06/01(火) 10:15:13.07 ID:UuHFoCEt 書き方が何通りもあってコンパイルが通るのは客観的事実だよ そんな書き方しなくても良いというのはまあ政治的にはそうなるわけだが コンパイルエラーにならないのに、バラモンみたいな人間に色々言われると混乱しやすい http://mevius.5ch.net/test/read.cgi/tech/1581326256/840
882: デフォルトの名無しさん [sage] 2021/08/02(月) 07:34:32.07 ID:Rllz2LO9 例えばOOPの継承関係を否定する 否定するなら対案を出せと言われる この過程は数学ではないけど結果的には半順序関係とか圏とか出てくる http://mevius.5ch.net/test/read.cgi/tech/1581326256/882
990: デフォルトの名無しさん [sage] 2021/12/16(木) 21:55:44.07 ID:iDMhxZSI >>988 毛の壁氏、ですか、なつかしいですね http://mevius.5ch.net/test/read.cgi/tech/1581326256/990
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.042s