[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/10 00:15 / Filesize : 342 KB / Number-of Response : 1029
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part33



1 名前:デフォルトの名無しさん [2020/02/10(月) 18:17:36 ID:L6eYQqyh.net]
関数型プログラミング言語 Haskell について語るスレです。

Haskell Language(公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp/

前スレ
関数型プログラミング言語Haskell Part32
https://mevius.5ch.net/test/read.cgi/tech/1548720347/

170 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 20:11:51 ID:Yw161NPN.net]
>>164
エンジニアの容姿を判定するのは無しだろうよ...
なんだ Haskell は、高潔なのは言語仕様だけか?

171 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 22:34:37 ID:pfIiNzTY.net]
Haskellってかわいいよね

172 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 23:04:02 ID:a6cZ/qJ8.net]
口うるさいBBAのイメージ

173 名前:デフォルトの名無しさん [2020/04/03(金) 23:36:38.26 ID:Wo72KAYJ.net]
学術的に進化してもらって
実用的な部分をメジャー言語が取り込んでくれればおk

174 名前:デフォルトの名無しさん [2020/04/04(土) 00:13:54.60 ID:HfszwI8c.net]
>>152
>例えば
テンプレ入

175 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 08:53:29.14 ID:S6De3LG2.net]
>>168
haskellをチョイスするのが只のミーハーではない。

176 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 14:52:35.68 ID:ym7hUMuJ.net]
むしろミーハーでもなんでも構わんのだけど、いち Haskeller が女性ってだけで
容姿を蔑んだり・持ち上げたりする連中がいるなら――もしいるのなら反省してほしい、と思った。

DSL を Freeモナドにするか、Tagless Final にするか、それぞれのメリットはなにか…
Haskeller はそういうことで悩んでいたいのであって、性別とかを理由に余計な荷物を背負わせるべきじゃない。
(ghc も依存している llvm はそういう辛さを避ける為に行動規範を定めているんだけど、いまのところまだ ghc には無いっぽい)
https://llvm.org/docs/CodeOfConduct.html

177 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 14:56:51.64 ID:ym7hUMuJ.net]
>>170
個人的な Haskell のイメージは、なんかシュッとした紳士みたいな感じ
エラーメッセージは確かに、ともすると口うるさいw

178 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 15:03:44.40 ID:ZRwDcP1M.net]
キモすぎて怖い…



179 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 17:30:47.61 ID:V7kxF8pu.net]
haskellでやり過ぎなほど徹底的に宣言性にこだわってプログラムする実験をしてみたが、なかなか面白いぞ。
手続き的になりがちなゲームプログラミングでやってみると特に。

180 名前:デフォルトの名無しさん [2020/04/04(土) 20:17:31.82 ID:H4c+c10U.net]
今から出会い系の女と会ってくるがやばいんか?

181 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 00:47:08 .net]
Haskellスレってワードサラダbotに荒らされてるのか

182 名前:デフォルトの名無しさん [2020/04/05(日) 12:14:43.03 ID:P07lI1PF.net]
ちょまど洗脳されかけたんか
https://www.youtube.com/watch?v=v56Y7TJ1ih8
https://yoshiakikamiya.com/characteristics-of-new-employee-training-conducted-by-black-companies/
jibun-discovery.com/?p=1691

183 名前:デフォルトの名無しさん [2020/04/05(日) 12:26:37 ID:P07lI1PF.net]
>>178
感染がやばい
https://startyourenginebrrrrr.net/?p=1339
お気を付けて

184 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 14:11:08 ID:TA9KtVo9.net]
haskellでアクションって言葉よく出てくるけど定義なに?

185 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 14:28:05 ID:k4Q+DqWZ.net]
>>182
HaskellでActionという用語をみたことが俺はないけど、Haskell直系の子孫のPureScriptだと
型注釈の->の右辺にEffectがある関数をアクションと定義するそうだ。
EffectはHaskellでいうIOに対応すると思ってもらえたらいい。
ちなみに->の左辺にEffectがある関数をハンドラという。


-- アクション
throwException :: forall a. Error -> Effect a

-- ハンドラ
catchException :: forall a. (Error -> Effect a) -> Effect a -> Effect a

186 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 19:12:11 ID:690ELyL1.net]
>>177
レポジトリ教えて

187 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 20:19:22 ID:eydcY4ib.net]
レポジトリって、サッポロ一番の新しい味?

188 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 20:26:40 ID:glUSLxyq.net]
そうだよ



189 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 21:28:22 ID:BHv6uIvk.net]
レポジトレ教えて

190 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 02:32:17.14 .net]
FRPは死滅しちゃったの?

191 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 03:19:32.28 ID:2h0eofxY.net]
>>188
どういうこと?

192 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 04:59:07 ID:qqlpdYMz.net]
どういうことなの…

193 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 05:06:41.75 ID:kxm5p/Vo.net]
むしろ>>189-190がどういうことなのかわからない

194 名前:デフォルトの名無しさん [2020/04/06(月) 09:29:24 ID:H7siEM1Y.net]
CabalのドキュメントのSecure repository のところ、
root.jsonのkey idを省略するのはお勧めしないとか書いてるけど、
なにかしないといけないの?

195 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 22:36:41.14 ID:MPGLY2yf.net]
このスレにはHaskellerなんかいないということがよくわかるな

196 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 07:33:13 ID:UmG0jYGu.net]
本当に言語に詳しい奴ってのはその言語の弱点をしっかりおさえてるもんよ。

197 名前:デフォルトの名無しさん [2020/04/07(火) 07:36:16 ID:SJ9J2Mim.net]


198 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 08:37:32 .net]
IO がオルタナティヴになったのって最近なのか
Aizu Online Judge のGHCだとコンパイルエラーになる



199 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 22:07:27 .net]
let [a,b,c,d] = bokunofunction in 〜

このリストってWHNFにならないのな

200 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 14:46:14.07 ID:qLx35nn/.net]
目的は二つ
式を評価し過ぎないこと
副作用を実行し過ぎないこと

手段はただ一つ
最外簡約

201 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 18:21:55 ID:flKXD0mo.net]
haskellでコロナ感染シミュ作るやつ誰もおらんのか?

202 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 19:41:52 ID:EEQhx4+u.net]
codewarの問題をHaskellで解いてみてるんだけど
、12000msタイムアウト多発する
リスト内包表記とか再帰はHaskellerはあんまり使わないの?
nに含まれる素因数とかすぐタイムアウトする

203 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 21:46:48 ID:ogEgOOCw.net]
>>200
arithmoiとかのライブラリ使うとめっちゃ速いよ
ソースを見てみるといいかも

あと、prime factorization haskell
とかをキーワードにして検索してみるとか

204 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 22:42:42.81 .net]
Haskell で競プロ辛い・・・
200000個の整数読み込んで処理するような問題だとMLEになりがちだ
本当にそんなに使ってるのかよ・・・疑わしいなぁ

ランタイムがとりあえずあるだけ使おうとして、足りなくなったらもう要らない空間を探して、そこに上書きするようにしてるの?
だとすると、とりあえずあるだけ使おう期間の段階で上限ぶっちぎってるってことかね
もしかして

GHC「記憶域ください」
競プロシステム「あなたは上限なのでもうあげません」
GHC「仕方ないな、じゃあガベージコレクションしてなんとかやりくりしよう」

ではなくて

GHC「記憶域ください」
競プロシステム「どうぞどうぞ」
GHC「どうも」
競プロシステム「はいそれは毒まんじゅうです。今のでMLEです」
GHC「えっ!!!!」

こうなんじゃないか?
ソースコードで「メモリ使用はは150MB以内で巧くやりくりしろ」とかって制限の指示できないんですか?

205 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 23:16:24.10 ID:DjxEmd7z.net]
Haskellで競プロやるテクをまとめた同人誌があったような

206 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 23:19:22.76 ID:BXIcY8lZ.net]
薄い本があったのか…

207 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 04:15:51.10 ID:WjwyibsT.net]
mleってなに?
Maximum likelihood estimation しか思いつかん

208 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 06:08:11.82 ID:Er/sUT94.net]
ぼくもそれしか…



209 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 06:56:02.05 ID:rnoGia+U.net]
競プロ mle でググってみた

MLE
メモリリミットエラー(Memory Limit Error)の略
提出したプログラムが許可された以上のメモリを使用したときに出る
(一部のコンテストで採用されている表現)

210 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 12:33:53 ID:tr0y4100.net]
>>202
とりあえずローカルでプロファイル取って実行してみると
スペースリークや大量のGCの原因が推定できるはず
(「Haskell プロファイラ」とかでぐぐって)
未評価のサンクが大量に積み上がっているとか、
イミュータブルな連結リストの使い方が悪くて
大量の一時リストを作ってしまっているとか
あたりじゃないかと想像してみる

211 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 13:06:48.82 ID:pEw+DEbK.net]
タイムアウトのやつ
この問題やってて
ttps://www.codewars.com/kata/54d496788776e49e6b00052f/train/haskell

通らないコードがこれ
sumOfDivided :: [Integer] -> [(Integer, Integer)]
sumOfDivided xs = map (\x -> (x,foldr (+) 0 (filter ((==0).(flip rem x) ) xs)) ) $ prime_factors ( product xs) 2
where
prime_factors 1 _ = []
prime_factors m n
| rem m n == 0 = n : (prime_factors (quot m n) $ n+1)
| otherwise = prime_factors m $ n+1

こういう感じでコード組み立てるんだけど、他の問題でもしょっちゅうタイムアウト起こしてる
応答の速いコードにするにはどんなふうに変えていけばいいかを知りたい
cで言うと値コピーしてソートしないでポインタでソートすると速いみたいな

212 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 21:38:04.55 ID:tr0y4100.net]
>>209
どう改善すればいいかはすぐにはわからないが
prime_factors関数は末尾再帰ではない再帰をしているから容易にスペースリークしそうな感じはする

213 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 00:39:23 .net]
できるだけリストを避けて
読み込みもByteString 版 getContents と readInt の組み合わせで高速化
そして困ったときの Data.Sequence 様やで!

C系提出者は軒並み 0.1 s で処理を終えている中、220MB 1.9 s 弱かけてなんとか致命傷でかいくぐった
制限超過してる気がするが、マイナー言語へのアファーマティブアクションかな?
くぅ〜疲れましたw これにて AC です!

214 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 01:34:33 .net]
>>209
prime_factorsだけど
quotRem なら一回で両方得られる
探索は3から+2ずつ探すべき
n が√m を超えてしまったら探索を打ち切るべき

リストの整数全部に出てくる素因数を予めリストアップしたいんだろうけど
そのprime_factorsだと絶対に素因数が存在しない、(2を除く)偶数空間と√mの後の空間をmに達するまで探していてとてもとても無駄
この無駄はmが大きいほど酷いことになるが、見事に君のコードはproductなんてしてmを巨大化させている
例えば、1000000 の素因数は少なくとも1000 以降は存在しないのに1001, 1002, 1003, ... , 999998, 999999, 1000000 まで探すところを想像してみて

一目気づいたのはそんなところかね。先ずはそこを直してから一局といったところか

215 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 01:52:08 .net]
>>208
まあ最終手段はそうなるんでしょうね
しかし早すぎる段階での最適化はたいてい悪手って言われてるし
その前に、アルゴリズムの選定が間違ってるんではとなって、あれこれ作戦変えて
いつしか通るわけです。すると結局いつまで経ってもプロファイリングを練習する機会が来ないんですよね

216 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 01:54:06 .net]
あ、いや、あれこれ作戦変えるヒントを得る為にプロファイリングするのか・・・
やっぱり手を出してみるか

217 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 10:48:29 ID:Ez55nAck.net]
異世界人「アルゴリズムをあれこれ変える」
主人公「言語をあれこれ変えてみよう」

218 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 11:07:53 ID:aAi/G6aw.net]
時間とメモリ両面のcomplexity考えるのは最適化以前の話



219 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 17:46:40 ID:/WUIZ9Nz.net]
>>212
39の素因数って3,13よね?
√39が6くらいだから探索区間は√mじゃ不十分かなって
でも確かに偶数はいらないから2:[3,5..]でいいね
全部の素因数のリスト作るのに全部掛け合わせて処理はひどいなと見直して思った
リストは早くするなら使わない方針なのね

Quatremとリスト以外(sequenceが代替?)調べて組み込んでみようかな

220 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 17:47:28 ID:/WUIZ9Nz.net]
お礼書き忘れたすみません
回答ありがとうござ

221 名前:「ますなんとか通ってもらいます []
[ここ壊れてます]

222 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 19:54:09 ID:JKZ0KcR7.net]
>>217
なんの話かよく知らないけど39を素因数分解してるのなら、
約数として3が見つかったら、その時点でもう39が素数じゃないことが判明するから、13を調べる必要ないよ
√39以下の数字調べればオッケー

223 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 19:55:22 ID:JKZ0KcR7.net]
間違えた
「素因数分解してるのなら」じゃなくて「素数判定してるのなら」だった

224 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 01:02:59.81 ID:6p+dWGIK.net]
>>209
計算速度や使用メモリ量以前に、解が正しくないよ。
試しに sumOfDivided [8] やってみ。

もう少し言うと、prime_factors 関数がおかしい。
関数名に相応しくない計算をしていられる。

まずは、必要な個数の正しい素数列を作ることを考えた方がいいと思うぞ。

225 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 01:13:24.21 .net]
>>217
あ、説明で嘘を吐いてしまった。確かに√m以降に素因数は存在しないは偽だった
それでも尚、√で打ち切っていい手筋は揺るがない。
√39より前の3を発見して、39 `quot` 3 (=13) に対して再帰的に同じことをする
ただし割ることを試すのは今割り切れた素数からね(同じ素数で複数回われることもある)。
もう一回3で割ろうとして失敗し、次は√13 を超えるので打ち切って、13 は素数と判定してリストに加える
だから結果として、√m 以降の素因数を取りこぼすことはない

226 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 09:43:04 ID:xRrLSzP4.net]
>>222
素数系のアルゴリズムは手続き的にはよく知られたものが色々あるけど
それをHaskellっぽく(宣言的に)定義しろって言われると割と悩む
STMonadとか使えば手続き的な実装はできるけど何かに負けた気分になる

227 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 12:23:07.85 ID:DtoAMVDb.net]
速度あげようと思ったら、どうのように計算するかということに介入する必要があるから手続き的になるのはしょうがないのでは

228 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 14:44:08.63 ID:ta7mONc0.net]
魔法を使える主人公がなぜか銃を乱射するというマナー違反
を許せない真面目系脇役の魅力



229 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 17:52:04.90 .net]
騎士道はCで書くなど、汚い真似をして勝つことを認めていない

230 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 18:51:48.64 ID:Tw57yEwr.net]
ごきげんよう、高貴なるhaskellプログラマの皆様方
今日も可憐におプログラミングですことよ
ほほほ

231 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 23:16:02 ID:kOeZUqy9.net]
haskellマスターすると新型コロナにかからないってよ

232 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 03:43:48.65 ID:ehKqAcW4.net]
コロナ菌に強い言語なん?

233 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 11:31:33.48 ID:v8V9P+IO.net]
C言語プログラムなどを実行すると電磁波の影響で身体への副作用が発生するからな
副作用を抑え人間本来の自然な免疫力を高めるのがhaskell

234 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 12:26:02 ID:kkncOpcu.net]
haskellマスターで彼女ができました!

235 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:41:19 ID:urv0mT/N.net]
>>230
我慢できずにモナドに手を出して感染する事例が後を立たない
モナドは自粛すべきと何度も言われているのに
屁理屈をこねて手を出す者が多すぎる

本当にHaskellに副作用がないのだと詭弁を弄せずごり押しするのならば
絶対にモナドをやるべきではないと言われている

236 名前:デフォルトの名無しさん [2020/04/18(土) 19:32:57 ID:DCiZBX2v.net]
モナドを「やる」ってなんだよw
モナドを禁止薬物か何かと勘違いしてるのか?

すべての人間は二分される
すなわち「モナドである」人間と、そうでない人間、だ
俺はモナド
お前はモナドではない

「上」で待ってるで

237 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 20:20:58 ID:aIlZnP1D.net]
おれモナド使いだけど、おまえ俺に使われてんのか

238 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 20:52:26 .net]
C言語プログラムなどを実行するとストレスの影響で毛髪への副作用が発生するからな
脱毛を抑え人間本来の自然な論理を書けるのがhaskell



239 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 22:32:39.62 ID:DCiZBX2v.net]
>>234
モナドに使われてるやつほど、自分はモナドを使ってると勘違いするよなw

240 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 23:24:30 ID:jMxNMUbH.net]
モナドを使う時、モナドもまたあなたを使っているのだ

241 名前:デフォルトの名無しさん [2020/04/19(日) 01:35:32.46 ID:WM8Q0HWB.net]
[状態モナド](https://wiki.haskell.org/State_Monad)を
[随伴](https://en.wikipedia.org/wiki/Adjoint_functors) on Rails
に乗せてみる。

``` code
type W x a b = (a, x) -> (b, x)
type S x a b = a -> x -> (b, x)

in_away :: W x c d -> W x b c -> W x a b -> W x a d
in_away cd bc ab = cd . bc . ab

in_home :: S x c d -> S x b c -> S x a b -> S x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = (.)
to_home = curry
to_away = uncurry
```

`to_home`が[記事](https://en.wikipedia.org/wiki/Adjoint_functors)での`Phi`
に、`ext`が[Kleisliのスター](https://en.wikipedia.org/wiki/Kleisli_category)
に対応する。`in_away`は通常の関数の合成で、`in_home`はそれを黒魔術に
翻訳している。
[継続モナド](https://wiki.haskell.org/Continuation)も随伴で書ける。

242 名前:デフォルトの名無しさん [2020/04/19(日) 01:36:44.08 ID:WM8Q0HWB.net]
``` code
type O x a b = (b -> x) -> a -> x
type C x a b = a -> (b -> x) -> x

in_away :: O x c d -> O x b c -> O x a b -> O x a d
in_away cd bc ab = cd %.% bc %.% ab where (%.%) = flip (.)

in_home :: C x c d -> C x b c -> C x a b -> C x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = flip (.)
to_home = flip
to_away = flip
```

厳密には、`flip`は随伴ではないが、`Set^op (a, b)`と`Set (b, a)`が集合
として同型になることを使うと、実質的な随伴の役割を果たす。

243 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 23:13:07 ID:hRJ8C0Os.net]
その話題は伸びない。このスレにはHaskellerいないからコード貼ったって誰も読めないし圏論を理解してるやつなんかいないから

244 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 03:13:59.48 .net]
Haskeller 戻ってきて

245 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 04:21:55.04 ID:VYi0JRSU.net]
エアプしかいないの?

246 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 12:33:40 ID:KoBCLV49.net]
ここには数学とプログラミング両方できる人がいるようだからお聞きしたいのだけど
プログラミングのクロージャーってトポロジーのクロージャーから引っ張ってきた用語なの?トポロジーの方の定義を眺めてみてもイマイチつながりが理解出来なくて

247 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 12:39:30 ID:PYrLoVAx.net]
まったく別

248 名前:デフォルトの名無しさん [2020/04/20(月) 12:40:47 ID:gGVXVDIS.net]
量子化とかもおいおいって思う



249 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 13:57:45.52 ID:a2Vdb5nD.net]
全く別なんすね

ありがとうございます

250 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 21:31:54.79 ID:CMTCfm7W.net]
別でもあるし同じでもある
具体的には

251 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 00:24:43.90 ID:dIhpNk/e.net]
量化子を量子化!

252 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 01:33:16.33 ID:iOWmjrKd.net]
そう言えば、佐野量子化って子もいたな

253 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 21:16:16.93 ID:JxCMv4cD.net]
この言語って純粋に理論的な側面に興味を感じてしまって、アプリ制作進まなくなるわ

254 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 00:29:18 ID:wNzYQ5IM.net]
それよりメモリ管理の理論に興味を感じないか
static変数のようなものを使えばメモリ管理と無縁のアプリ製作ができるのだが

255 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 02:23:16.94 ID:mBUbZ8gm.net]
何を言ってるんだ

256 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 03:15:59 .net]
メモリ管理に興味を感じないか? → メモリ管理と無縁の〜ができるのだ

??????
メモリ管理するんじゃなかったのか?

257 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 07:00:20.01 ID:eoS2PMe8.net]
staticおじさん来てんね

258 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 13:10:01 ID:rjrgI3oq.net]
10年以上前から同じ会話してるだろ
免疫がつくまで繰り返すんだぜこれ



259 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 21:43:23.72 .net]
Haskellスレって荒らされてるの?

260 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 22:27:14.34 ID:mBUbZ8gm.net]
これが平常運転

261 名前:デフォルトの名無しさん [2020/04/24(金) 01:31:48.04 ID:Zatb8XkV.net]
低俗なねらーにはHaskellはら難しすぎたんや…

262 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 23:19:15.10 ID:FUZNUOcv.net]
メモリ管理の様な世俗的な因習に捕らわれず神の領域を安らかたらしめん為の関数型言語では無かったか

263 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 01:04:25 ID:7jpIjPuc.net]
現実のハスケラ達は評価順やサンク潰しの制御のテクニックを競ってマウンティングし合ってるよ

264 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 01:48:47 ID:n1+IBCwB.net]
くだらない事をダベってるくらいなら、Polysemyの基礎でも勉強してろ
https://sir4ur0n.github.io/

265 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 04:06:57 .net]
それを知るとどんな良い事があるのか、学習の動機づけをください

266 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 05:14:26.69 ID:n1+IBCwB.net]
簡単に言えば、安全で明確でテストしやすいプログラムが書ける。

IOモナドの関数は中でどんなIOアクションでもできてしまい危険だ。
大事なファイルを上書きしようが、大音量でビープを鳴らそうが。
Polysemyに代表されるエフェクトシステムを使うと、
関数の中で使えるIOアクションの内容を関数シグネチャで制限できる。
ファイル読取アクションを宣言した関数の中では、書込や画像表示など他のIOアクションは一切できず安全だ。

また、ビジネスロジックのコードではどんなアクションをするのか(what)というレシピだけを書き、
そのアクションを実際のIOを使ってどの様に実現するか(how)は別のコードで書くことになる。
whatとhowがしっかり分かれ明確だ。

なので、ビジネスロジックのコードは純粋関数で書け、テストしやすくなる。
howのコードだけをモックに変えることもでき、これもまたテストを容易にする。

と言うようなことを例を交えて分かりやすく説明しているのが >>261 の記事だ。

267 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 08:08:07 .net]
目を通しました(理解できたとは言ってない)
粒度の粗い物を制限してもっと細かくして、その組み合わせで書き直すことで間違いを排除する、
(手を入れられない)既存ライブラリに対して、ぼくのかんがえたさいきょうのリファクタリングをエミュレートする基盤となるものですか?

268 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 10:58:51.70 ID:n1+IBCwB.net]
>>264
前半はその通り。

が、すまん、後半は意味が分からない。
リファクタリングをエミュレートするってどういう事?
初めて聞いたフレーズだ。

リファクタリングをする事と、リファクタリングをエミュレートする事の違いを教えてくれ。



269 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 12:04:03 .net]
真のリファクタリングは、設計しなおしてソースコードも書き直す事が含まれるとすると
標準ライブラリであるIOモナドの設計やソースコードを直接弄ることはできませんから、ポリ蝉版は本当にIOを再設計したわけではなく、
リファクタリングを疑似的に再現したという解釈はできないでしょうか
リファクタリングの真似事なのでエミュレートと言いました

270 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 12:44:25.69 ID:d+Khct7b.net]
現実問題として純粋関数だけじゃ成り立たないからね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<342KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef