関数型プログラミング言語Haskell Part34 (691レス)
上下前次1-新
256: デフォルトの名無しさん [sage] 2023/10/11(水) 22:05:36.63 ID:1pnnvG+R(2/2) AAS
括弧を使わずにじゃなくてラムダを使わずにでした
まさに欲しかったのそれです
ありがとうございました!!
257: デフォルトの名無しさん [sage] 2023/10/18(水) 05:38:40.90 ID:vCrdR6l9(1) AAS
QuickCheckを勉強しているんですが
Runtime Errorを検出したくて次のように書きました
anの要素は2以上n以下で複数回出現します
testcaseがほとんどdiscardされるのですがリストをchoose (2,n)とかで生成するには
どうしたら良いのでしょうか
verboseCheckを指定してみるとskippedだらけなのですが
スキップしたやつは表示しないで欲しい
prop :: Positive Int -> [Int] -> Property
prop (Positive n) an = all (>=2) an && length an == n ==> monadicIO $ do
a' <- run (solve n an)
assert True
258(1): デフォルトの名無しさん [sage] 2023/11/16(木) 18:41:54.01 ID:wXoixzgD(1) AAS
岡部健、復活したよ!
エックス内を
“Ken140291“
で探してみて下さい。
最近登録したばかりの様です。
259: デフォルトの名無しさん [sage] 2023/11/18(土) 16:03:54.22 ID:sLhTkQlu(1) AAS
自分で書き込んでいるのでは・・・。
260(1): デフォルトの名無しさん [sage] 2023/11/19(日) 15:31:44.23 ID:/inwpH7b(1) AAS
>>248248(1): デフォルトの名無しさん [sage] 2023/09/22(金) 12:15:07.45 ID:NjV4q9P3(1/2) AAS
数値のリストl=[1,10,3]みたいなのを
1 10 3と出力したい。末尾には空白はあってはならないとする
最初
putStrLn $ intersperse ' ' $ foldl' (\acc x -> acc ++ show x) [] l
こんなのを考えたのだが10も1 0と分解されてしまった
しかたなく泥臭いこんなコードを書いたのだがもっといい方法はないだろうか
mp [] = return ()
mp [x] = putStrLn $ show x
mp (x:xs) = do
putStr $ show x ++ " "
mp xs
init $ folfl (\a x -> a++[show x]++“ “) ““ [3,10,1] でOK
261: デフォルトの名無しさん [sage] 2023/11/20(月) 09:46:08.35 ID:sZ0M6Dsh(1) AAS
>260 打ち間違えた!
lnlt$foldl(\a x->a ++show x++" ")[][1,10,3]
が正解。
262: デフォルトの名無しさん [sage] 2023/11/20(月) 14:32:44.66 ID:4MiKC4cJ(1) AAS
>>258
ぎゃははははははは
263: デフォルトの名無しさん [sage] 2023/11/20(月) 21:45:30.49 ID:Jf1v4QK8(1) AAS
外部リンク:github.com
> Unkown(気づいてない)
ウンコウンわろた。
264: デフォルトの名無しさん [sage] 2023/11/20(月) 23:57:47.37 ID:N43MAaAU(1) AAS
スレチ
265: デフォルトの名無しさん [sage] 2023/11/21(火) 12:01:48.14 ID:MS7pneIs(1) AAS
毛の壁くん復活してたのか!!
266: デフォルトの名無しさん [sage] 2023/11/21(火) 12:21:46.16 ID:W0g+S6dW(1) AAS
外部リンク:archive.md
毛の壁(岡部健)についてはここが詳しい
267(1): デフォルトの名無しさん [sage] 2023/11/22(水) 15:27:17.26 ID:1OepVPCl(1) AAS
こんなコードがあるのですが
cumsum k = unfoldr next . (,) 0
where
next :: (Int, [Int]) -> Maybe (Int, (Int, [Int]))
next (acc, x : xs) | acc <= k - x, acc' <- acc + x = Just (acc', (acc', xs))
next _ = Nothing
acc <= k-xはわかるのですが、acc' <- acc + xというのはどういう文法なのですか?
リスト内包表記でもないですし条件式の部分でモナドを扱ってるわけではないですよね?
268: デフォルトの名無しさん [sage] 2023/11/22(水) 16:31:30.12 ID:PuIW3qrN(1) AAS
>>267
パターンガードかな
外部リンク:ja.wikipedia.org
269: デフォルトの名無しさん [sage] 2023/11/23(木) 07:24:43.49 ID:WRBO39fy(1) AAS
<-はパターンガード修飾子と呼ぶのですね
初めて知りました
ありがとうございました
270(1): デフォルトの名無しさん [sage] 2023/11/24(金) 17:42:26.91 ID:V3Fz2AWZ(1) AAS
毛の壁のTwitterの新しいアカウントは
Ken140291
FPFSstutorial
leadmove3648637
です!!
271: デフォルトの名無しさん [] 2023/12/04(月) 12:27:24.28 ID:GjmDAseS(1) AAS
>>270
ぎゃっはっはっはっはw
272: デフォルトの名無しさん [sage] 2024/01/01(月) 20:17:21.69 ID:DcfOChZv(1) AAS
mapAccumL/Rの使いどころがよくわからないのですが
どういう時に使うとかの指針ってありますか?
273: デフォルトの名無しさん [] 2024/01/09(火) 22:50:44.14 ID:3mg8b04T(1) AAS
ここ5年で発売されたHaskellの書籍で最も優れたものを紹介してください
274: デフォルトの名無しさん [] 2024/01/12(金) 10:55:28.35 ID:cAhPSGjh(1) AAS
オワコン
275: デフォルトの名無しさん [sage] 2024/02/29(木) 01:38:01.78 ID:d2gqoSk4(1) AAS
windowsにインストールできんみたいだなcabalがエラー?
まあwindowsでやるなってことだな
276: デフォルトの名無しさん [] 2024/03/03(日) 23:47:35.89 ID:9XAeTkis(1) AAS
モナドについて、床下配線に例えられたり、世界を受け取って副作用後の世界を返すと(IOモナドについて)語られたりするのが当時は分からなくて、考えた結果
何かから値を取り出し、関数適用して(その関数が)何かに値を戻す「動き」をモナドという。
って結論になっていたのだが、IOモナドも含めてもっと良い例えはないかと考えた結果、
モナドとは、アウトソーシング(外部依頼)を数学的に表現したもの。
という結論に至った。
アウトソーシング先が(数学の)外の世界だとIOモナドで、同じ数学の世界だとその他のモナド。
それならHaskell自身は「この関数実行しておいて~」って依頼出して結果を受け取るだけだから、
副作用はないと言う主張に矛盾はない(のか?)
(もしくは、IOモナドはHaskellが受け取れる形の値を返すような入出力の「マシン語」を返してる?)
そう考えると、数学が「数学の外とのやり取り」という概念を獲得したと思うと凄い。
277: デフォルトの名無しさん [sage] 2024/03/04(月) 00:46:59.53 ID:XMYw3zR0(1/2) AAS
箱の中に処理したいデータが入ってるけど一緒にIOウイルスも入ってて
普通に箱を開けるとIOウイルスが外界に漏れて困るから
もう一回り大きい箱を用意してその中に箱とデータ処理装置を入れて
密封した上で内側の箱を開けてデータを処理する
そうすると箱の中に処理されたデータとIOウイルスが入った状態になる
これを延々と繰り返すのがIOモナド
ずっと前に毒ガスで考えた比喩だけど最近だとこっちだな
278: デフォルトの名無しさん [] 2024/03/04(月) 01:02:22.82 ID:vyClhVzf(1) AAS
ふーむ。
仮にアセンブラと1対1に対応したCの関数を全部Haskellから呼べるようにすると、出来ちゃうわけで。
(do形式だとまるっきりアセンブラコードに見えるHaskellコードの出来上がり)
そう考えて私のアウトソーシング説が出来た感じですね。
Haskellがモナドを採用したのは数学(関数型言語だったっけ?)の敗北ってどっかで読みましたし。
279: デフォルトの名無しさん [sage] 2024/03/04(月) 01:22:40.61 ID:XMYw3zR0(2/2) AAS
doの場合は1行ごとに新しい箱が作られてる
順序はたまに前後するけど内側の箱のデータは外側の箱でしか使えないから
必要な順序は保証される
外界の予測不能な状態を全部1つの箱の中に押し込んで
箱の外側の処理装置製造工場は全部予測可能(純粋)にしてる感じ
数学の敗北の意味はよく分からないけど
実用性のために予測不能な状態を持ち込んだことかな
280: デフォルトの名無しさん [sage] 2024/03/06(水) 10:29:39.18 ID:Yy7OLBEk(1) AAS
なんか大げさな例えを使いたがるやつが増えたなぁ
コーディングの上でなんの役に立つんだが
上下前次1-新書関写板覧索設栞歴
あと 411 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s