関数型プログラミング言語Haskell Part34 (667レス)
上下前次1-新
299(1): 2024/07/05(金)00:05 ID:b38yqPqv(1/2) AAS
>>298
computationがvalueの一つだったら
概念的に computation ⊆ value
になるけど。
少なくとも拡張しているのだから
computation ⊇ value
にならないとおかしくない?
`5 + 3`がcomputationというのは前提にもよるからなんとも言えないと思う。
計算して8(=5+3)を導いたなら8はcomputationだと思うが。
たとえば、掛け算だったとして、九九を唱えてゴサンジュウゴで15を導き出したんなら計算してないからvalueだと思う。
300(1): 2024/07/05(金)00:53 ID:DkqpNxkH(1) AAS
>>299
おかしくないよ
OOPでクラスAを継承してクラスBを作った場合(B extends A)を考えてみたら?
`九九を唱えてゴサンジュウゴの結果を導き出す`のがcomputation
導き出された結果と導き出す計算を区別して
301: 2024/07/05(金)02:03 ID:b38yqPqv(2/2) AAS
やっぱりHaskellスレにcomputationネタわかる人いたんだね。
>>300
>OOPでクラスAを継承してクラスBを作った場合(B extends A)を考えてみたら?
ここは納得。
>導き出された結果と導き出す計算を区別して
なにか f: value -> computation型の関数を念頭に置いて
`f ()`はcomputationと言っているのでは?
意図を勘違いしているかもしれないですが、computationはあくまで導き出された結果でしょう。
それと、関数の返り値を導き出す計算をするにあたって出てくる効果を定義に含めようとしているように感じたのですが、
それはあくまで value -> computation型の関数を計算することに付随する性質であって
省3
302(1): 2024/07/25(木)23:56 ID:zdgCFOr2(1) AAS
stateやioモナドってHaskell以外でも使われてるの?
maybeやeitherは関数型でない言語でも同等のものがあるから分かるけど、stateやioはいまいち便利そうな感じがしない
303(1): 2024/07/26(金)05:41 ID:JmafwQnp(1/3) AAS
>>302
それはそうで、IOモナドは他の言語例えばC言語系列だとhoge();の";"部分を数学的に表現しただけだから。
見た目だけなら
x = x + 1;
printf("%d\n", x);
を
return (x + 1) >>= \x -> print x
do形式に直して
省12
304(1): 2024/07/26(金)05:47 ID:JmafwQnp(2/3) AAS
そこまで気づくと、Gtk2hsとかWin32とかのC/C++からのラッパーライブラリを関数型言語っぽくない!って拒否する気持ちが分からなくなる。
305(1): 2024/07/26(金)06:16 ID:JmafwQnp(3/3) AAS
あ、IOモナドの利点一応あった。
入力関数が他の関数の引数になったり、他の関数に関数合成出来ない。
Pythonのprint(input())みたいなコードや、len(input())みたいなコードは無理。
ここをしっかり分けることで、そういう変な使い方でのエラーは出ない。
もっと広い視点で言えば、入出力がIOモナドという型で分かれているのでネストの深いループの中でも入出力時に型を意識する必要があるので、そういうバグが大分減る。
手続き型関数型関係なく、ネストの深いループの中のデータが今どんな状態かを頭の中で把握出来る人はそう多くない。
だから、デバッグ時に解きほぐしていくんだが、関数型の方が切り分けしやすいかも?
306(1): 2024/07/26(金)06:20 ID:EERDttnJ(1) AAS
Halkellのその先が見たい?
Rustにその答えが全て詰まっている
307(4): 2024/07/26(金)08:11 ID:3P5OnSpM(1) AAS
どなたか教えてください。
数学の構成や命題の証明に使うならば、HaskellとOCamlはどちらがよいでしょうか。
308: 2024/07/26(金)12:15 ID:f34zQmtT(1) AAS
Rustは、メモリが見えすぎるのがイヤだー
大したもの書かないから、GCありでお願いしたい
309: 2024/07/26(金)17:24 ID:HoH4md/R(1) AAS
>>307
漠然としすぎ
やり直し
310: 2024/07/26(金)17:58 ID:dth0vnjc(1) AAS
数学の構成?
311(1): 2024/07/27(土)00:29 ID:r3Qeb3es(1/4) AAS
>>307
Coqという証明支援プログラミング言語をお使い下さい。
Haskellでも型プログラミングでゴリゴリ自力で命題の証明出来るそうですが、ある程度自動化されている専用言語の方が良いでしょう。
Coqはその中でも日本語情報が多いです。
312(1): 2024/07/27(土)00:43 ID:r3Qeb3es(2/4) AAS
>>306
実用言語、特に組み込み分野を置き換えるのに期待されてる。
特集記事が無くてもお題スレ見たいな、Rustで問題を解こう的な連載が続いてる辺り、
特にinterfaceの編集陣の熱量は感じる。
Haskellも先駆者の記事によればWeb向けとしては神言語だそうだ。
ただ、周辺環境が未整備なだけで。
(なので、自分で全部作るという茨の道を進む「覚悟」が必要だとか)
未だにそうではないことを祈るが…。
313(2): 2024/07/27(土)00:53 ID:r3Qeb3es(3/4) AAS
>>307
数の構成の方は、代数的型と基本的な方だと(一部)derivingで自動生成してもらえるから、Haskellはとても楽。
print関数で表示する部分だけでも自動生成してもらう価値はある。
(Read,Enum,Ordで生成されるのは確認済み)
data Nat = Zero | Succ Nat deriving (Show)
連続関数はPCそのものの限界で無理。
代数的型でメモリの続く限りの範囲なら少数も作れるかもしれない。
(その前にリストなり何なりで10進数位取り記法を導入しないと、Natは無限進数なので小数点第1位が1万とか、無限に桁上がりしない構造になる)
314(1): 2024/07/27(土)13:46 ID:f/jP9uGd(1) AAS
>>307
結局こいつがなんの返信もしてない時点で適当に書き込んでたってことがわかるよ
真面目に相手をしないほうがいい
315: 2024/07/27(土)16:19 ID:Z663WedI(1) AAS
>>313
ありがとうございます。
316(1): 2024/07/27(土)17:29 ID:sW1zoNGb(1) AAS
>>311-313と>>314は同一人物だよ
騙されないで
317: 2024/07/27(土)21:26 ID:wvv58UYW(1) AAS
知ってた
318: 2024/07/27(土)23:34 ID:r3Qeb3es(4/4) AAS
>>316
他人を語ったつもりもないけどね?(ID見れば分かるんだし)
ちなみに>303-305も私だ。
1日2-3回くらいしか見に来ないから、書き込めることはまとめて書き込んだ結果です。
319(1): 2024/08/01(木)12:24 ID:XzWUPxYY(1) AAS
プロセッサメーカはAIブームと見るやこぞってAI処理特化プロセッサの開発競争
関数型言語に特徴的な処理に特化したプロセッサは誰も作ってくれない
320: 2024/08/01(木)16:36 ID:rWBa8MOA(1) AAS
それ必要か?
321: 2024/08/04(日)23:21 ID:y1wQ9MUm(1) AAS
>>319
スタックコンピューターは、Lispの時にぽしゃった。
322: 2024/08/05(月)21:33 ID:FcOscapW(1) AAS
日本企業がLisp専用マシン作ったが第五世代コンピュータプロジェクトが💩で何らまともな成果をあげられなかったからね。
323(1): 2024/08/11(日)17:42 ID:7wNJGHOt(1) AAS
麓から山頂を目指す
foldl: 徒歩で登り切ったら滑り台で向こう側へ降りてゴンドラで再び山頂へ戻りゴール
foldr: ゴンドラでいきなり山頂へ。そこから向こうの麓まで滑り台で降り、そこから山頂へ徒歩で戻る。但しある場合は滑り台を途中で降りてそこから山頂へ徒歩で戻ってゴールにしてもよい
こういうこと?
324(1): 2024/08/12(月)21:44 ID:EAbaqMlq(1) AAS
Preludeのライブラリドキュメントのページが最新のChromeでよく応答なしになるんですが!
現代PCでもプチフリを起こすページとか凄いですね!(怒)
325: 2024/08/13(火)01:44 ID:3Ko8/FbA(1/2) AAS
>>324
hoogle使いんさい。
326: 2024/08/13(火)01:45 ID:3Ko8/FbA(2/2) AAS
>>323
foldl = 末尾再帰を高階関数化
foldr = 普通の再帰を高階関数化
327: 2024/08/15(木)10:15 ID:oieuoNWz(1/2) AAS
yesod を導入しようとして調べているのですが、今は stack 前提で cabal での利用は考えられていないのでしょうか?
導入記事では cabal の記述がありますが、
yesod init すると stack new 使えと表示が出ます。
328: 2024/08/15(木)10:30 ID:oieuoNWz(2/2) AAS
yesod-bin 1.6.2.3 です
上下前次1-新書関写板覧索設栞歴
あと 339 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s