スレ立てるまでもない質問はここで 151匹目at TECH
スレ立てるまでもない質問はここで 151匹目 - 暇つぶし2ch996:デフォルトの名無しさん
19/05/04 09:12:23.39 S+NYX3By.net
>>972
関数型言語のスレの方が良い気がするけど。。。
感覚的で良ければ。
圏論では変数も引数のない関数と見なすので、例えばgetLineみたいな副作用のある関数も一種の変数(外部からの入力が入っている変数)と見なします。
n = 1 ― 変数であり、引数なしの関数
入力

getLine ― 副作用関数であり、入力が入っている変数
ただ、入力を通常の値と同じにすると参照透明性が破れるので、IO Stringの様に別の型にして、>>=からしか値が取り出せない様にします。
(逆に通常の型にIOを付けたい場合はreturnを使います)
そうする事で、副作用のある関数は普通の関数も使えるけど、逆は無い事が保証されます。
ぶっちゃけ、純粋関数型言語にも副作用はあると言えますが
(無いと主張するなら虚数の掛け算みたいな感覚。実数に対して90度の回転みたいに、虚空からの値の変数への束縛。
ただしその変数は常に部分適用で見た目が隠されている。みたいな)、
参照透明性が破られることは無い。と言うのが純粋関数型言語の特徴ですね。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch