関数型プログラミング言語Haskell Part34 (691レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
260
(1): デフォルトの名無しさん [sage] 2023/11/19(日) 15:31:44.23 ID:/inwpH7b(1) AAS
>>248
248(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
403
(1): デフォルトの名無しさん [] 2024/10/02(水) 07:50:08.23 ID:AFS53MaU(1/6) AAS
>>400
400(1): デフォルトの名無しさん [sage] 2024/10/01(火) 23:21:35.19 ID:syLuNokt(1/2) AAS
>>397
大文字小文字の変換が自然変換の部分kwsk

>>399
目的と手段を区別したら、手段は二の次だと言うのは予選敗退者のポエム
よくよく考えたら特別な事じゃないんだけど、普通のプログラミング言語でも大文字・小文字の変換関数を自作するってなったら、文字をInt型に変換して処理する。

それって文字の圏で直接大文字小文字の変換するを作れない場合、一旦整数の圏を経由する関数を作る。

A(a) → B(a)
↓ ↓
A(A) → B(A)

可換図のA(a) → B(a)の逆射が作れれば、B(a) → B(A)が作れる。
ほら、分かってみれば「なーんだ。そんなことか」でしょ?
466
(1): デフォルトの名無しさん [sage] 2024/10/04(金) 07:38:19.23 ID:EogKDI3R(3/3) AAS
>>465
465(1): デフォルトの名無しさん [] 2024/10/04(金) 07:22:19.19 ID:vLDssEdm(3/9) AAS
>>464
そうなんだけど、結局普通のプログラミング言語を使ってる人にしてみれば屁理屈でしかない。
見た目そのままで伝えるなら、純粋関数型言語の定義のまんま、「副作用を伴っても参照透明性が保たれている」でいい。
まあそのほうがいいか
上の方にいた彼はなんか脳内にこだわりがあって、普通の型付きラムダ計算以上のことをやってると思ってるフシがあったね
504
(1): デフォルトの名無しさん [] 2024/10/04(金) 22:52:29.23 ID:tixO3LDq(18/22) AAS
ただの圏じゃなくてクライスリ圏じゃないといけない(Moggiのアイディア1から)。
そして、クライスリ圏を定義するためにはクライスリ・トリプル(モナド)がいる
543
(1): デフォルトの名無しさん [] 2024/10/08(火) 19:24:10.23 ID:u3fJk7wa(1) AAS
>>541
541(1): デフォルトの名無しさん [sage] 2024/10/08(火) 16:34:43.77 ID:uOPPJ/Hn(1/2) AAS
圏論好きはHaskellよりCPLで幸せになれる
CPLとは?kwsk
612: デフォルトの名無しさん [sage] 2024/11/17(日) 20:00:10.23 ID:895B27h0(2/2) AAS
圏がグラフの拡張みたいな概念だったから、グラフ理論みたいに有用なプログラミングにつかえるアルゴリズムがあるんじゃないかってことでやってたように見えた。
モナドも説明したかったようにみえたけど、結局圏論の勉強を踏まえた説明はでてこなかった。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s