[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
43: デフォルトの名無しさん [sage] 2020/02/27(木) 10:14:58.86 ID:MNKJ7PH5 PowerShellのリダイレクトに悩まされた プログラムやHaskell側のエンコーディングの問題かと思ったらPowerShellの問題だった http://mevius.5ch.net/test/read.cgi/tech/1581326256/43
70: デフォルトの名無しさん [] 2020/03/26(木) 20:45:53.86 ID:ylVms19z Haskellerにとって読みやすいコードわかる MonadだのApplicativeだのを無理に再現しようとして でも型システムがへぼいから限界あって買いてる方も楽しくないし 読む方の辛さは言わずもがなだしで誰も幸せにならない http://mevius.5ch.net/test/read.cgi/tech/1581326256/70
78: デフォルトの名無しさん [sage] 2020/03/27(金) 12:12:13.86 ID:gM1jKcLP 評価順序ってのは遅延評価のことか doのことかもよくわからん http://mevius.5ch.net/test/read.cgi/tech/1581326256/78
92: デフォルトの名無しさん [sage] 2020/03/27(金) 20:03:05.86 ID:EYGPwzDC そんな難しく考えなくても計算機に与える命令のつらなりってことじゃないの? 命令には純粋っぽい命令とそうでない命令があるけど、計算(評価)前ならどんな命令だろうが単なる値だから副作用もへったくれもないって理屈じゃね 実際はメモリー上の命令は全て状態だけど、書き換えられないように管理すれば純粋とみなせるってことだろ 例えば、 1+2*2^2^-1+3*3^3^-1 という式を考えた場合、これ全体を値として捉えることもできる 実際値として使おうとすると+、*、^の部分を命令として評価しないといけないけど、使い方によっては全部評価する必要はない これに10足したかったら 11+2*2^2^-1+3*3^3^-1 で済ますこともできる これを小数点以下10桁まで表示したくなった時、必要な桁まで計算(評価)すれば良い 18.1551758356… Haskellの基本的な考え方はこういうことでしょ http://mevius.5ch.net/test/read.cgi/tech/1581326256/92
93: デフォルトの名無しさん [] 2020/03/27(金) 20:16:36.86 ID:adWh10vX まずはっきりさせておきたいが、Haskellのテキストで 「命令列」なるものは出てこんし誰もそんなものを使ってモナドを説明しようとしてない。 あくまで「命令列」とは、>>74が自身でモナドを理解するために有用な概念だと見出し定義した用語と考えるべきだ だからここで有意義な議論がしたいなら、まず目的を確認する必要がある。 我々は>>74さんの頭の中を理解したいのか? それともモナドに対してより良い理解を形成したいのか? http://mevius.5ch.net/test/read.cgi/tech/1581326256/93
114: デフォルトの名無しさん [sage] 2020/03/28(土) 13:51:46.86 ID:HVNiklPA 言語仕様はよいよね 実装はどこがよいのかさっぱりわからんが、知らなくても問題ないと言われる http://mevius.5ch.net/test/read.cgi/tech/1581326256/114
163: デフォルトの名無しさん [sage] 2020/04/03(金) 18:00:08.86 ID:AMwYpRxM かわいいです http://mevius.5ch.net/test/read.cgi/tech/1581326256/163
326: デフォルトの名無しさん [sage] 2020/05/23(土) 01:56:13.86 ID:PUmkxvlF >>324 >>325 それはひとつのモナドを3回評価しているのではなく、 ひとつのモナドの中の値を3回評価しているのではないでしょうか? 例えば repM (getLine >>= print) を評価すると、 1回しか getLine >>= print を評価しません。 ちなみに、IOモナドに限れば unsafeInterleaveIO 関数が使えます。 また、リストではなくいわゆるストリームなら出来ました。 ですが今はモナド全般に適用でき、リストのモナドを返す関数を求めています。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/326
416: デフォルトの名無しさん [] 2020/08/22(土) 13:31:18.86 ID:DGMheHKA それで? 会話や食事の中の唾液飛沫の3次元シミュレーションが出来るんですか? http://mevius.5ch.net/test/read.cgi/tech/1581326256/416
451: デフォルトの名無しさん [sage] 2020/08/30(日) 15:32:06.86 ID:mGp/4vHZ >>449 https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base-4.14.0.0/src/Data-Complex.html でData.ComplexのソースコードでNumクラスのインスタンス定義を見たところ メソッドabsとsignumの実装に magnitude :: (RealFloat a) => Complex a -> a を使ってるからみたいだね 本当に足したり引いたりしたいだけならNum制約は強すぎる 数のクラス体系の問題点について詳しくは https://blog.miz-ar.info/2016/06/haskell-num-class/ http://mevius.5ch.net/test/read.cgi/tech/1581326256/451
569: デフォルトの名無しさん [sage] 2020/11/11(水) 22:07:05.86 ID:F87BSTFR >>568 そうなんですか? とりあえずモナドで試してみます 兎にも角にも正格評価と遅延評価でこんなに計算の回数が違ってくるってのなんかご存知ないですか? 例えばdpの例でFibonacciを f 0 = 0 f 1 = 1 f n = (f $ n-1) + (f $ n-2) と f' 0 = (0,1) f' n = (a+b,a) where (a,b) = f' (n-1) f = fst . f' で比べると目に見えて計算量が違うみたいな奴で「正格評価が効いてる」って目に見えてわかるような例があるとありがたいんですが http://mevius.5ch.net/test/read.cgi/tech/1581326256/569
619: デフォルトの名無しさん [sage] 2021/01/05(火) 09:39:14.86 ID:b/Fw/Z0P ふと思った。 a型の2次元配列が必要になった時、 [[a]] や Array (Int, Int) a ではなく、 (Int, Int) -> a が真っ先に思い浮かぶなら、 そいつは関数型にどっぷりハマってるな、と。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/619
674: デフォルトの名無しさん [sage] 2021/01/22(金) 00:20:12.86 ID:IysdrbOG HaskellとPythonは似ていないから両方使ってもDRYに違反しない 似たもの同士で馴れ合い、異質なもの同士を分断するやつは信用できないが Pythonは似たもの同士でしっかり競争して生き残ったやつだから信用できる http://mevius.5ch.net/test/read.cgi/tech/1581326256/674
720: デフォルトの名無しさん [sage] 2021/02/08(月) 12:31:08.86 ID:hFpKnaPX >>707 リスト使ったメモ化の理解にはいいんですけど、その例も実は遅いんですよね。!!がO(n)なので。 module Main where import Data.Function import qualified Data.Vector as V main = do let memo = fibMyMemo 50000 print $memo 50000 print $fibMemo 50000 fibMyMemo l = fib where fib = ((V.map f $ V.enumFromN 0 (l + 1)) V.!) f 0 = 0 :: Integer f 1 = 1 f n = fib (n -1) + fib (n -2) memoize f = (map f [0 ..] !!) fib f 0 = 0 fib f 1 = 1 fib f n = f (n - 1) + f (n - 2) fibMemo = fix (memoize . fib) http://mevius.5ch.net/test/read.cgi/tech/1581326256/720
757: デフォルトの名無しさん [sage] 2021/02/26(金) 02:07:21.86 ID:Drny41hT 型は集合ではない 値は元ではない プログラム上の関数は数学的な意味での関数ではない Haskellは数学ではない http://mevius.5ch.net/test/read.cgi/tech/1581326256/757
780: デフォルトの名無しさん [sage] 2021/03/20(土) 14:58:31.86 ID:5ytd1i+3 カリーハワード同型対応とかって、機械学習だのアーキテクチャだのネットワークだのアルゴリズムだのといった工学的で応用的で目的意識の定まった何かの役に立つために発明されたものというよりも、理学的で基礎的な単なる重要な事実という雰囲気ある気がする http://mevius.5ch.net/test/read.cgi/tech/1581326256/780
814: デフォルトの名無しさん [sage] 2021/04/17(土) 18:16:48.86 ID:+4ymujjn 動かないと言うのはghciに入力すると結果がいつまで経っても出力されない状況を指します http://mevius.5ch.net/test/read.cgi/tech/1581326256/814
861: デフォルトの名無しさん [sage] 2021/07/10(土) 12:28:39.86 ID:5i+2sdHC hackageをfloatで検索した結果。怪しそうなやつ: https://hackage.haskell.org/package/variable-precision https://hackage.haskell.org/package/AERN-Real-Interval http://mevius.5ch.net/test/read.cgi/tech/1581326256/861
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.038s