副作用
side effects
薬の話
薬を服用する主目的は、ある課題を解決するための効用を得たいから
それに伴う、この文脈では特にネガティブな作用が副作用
「この風邪薬はすごくよく効くけど、服用したら眠くなるよ」
眠くなるのがダルい、これが副作用
状態の変化、も副作用らしい
なので再代入を許容すれば副作用あり、になる
State は状態をエミュレートしているだけであって、実際に状態を持っている訳ではない。
なんで入出力は副作用?
ある関数の型に IO が含まれていれば、その関数には入出力という副作用がある。逆に、IO という型がまったくなければ、その関数は純粋である。ref IO から純粋な関数を呼べるが、その逆はできない。
@khibino: "型に現れるのが「主作用」、現れないのが「副作用」と呼びたい。 IO が結果の型に現れているということは純粋なんです。
IO が結果の型に現れてないのに IO が起きるときに「副作用」があると言うんですよ。"