- 520 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:58:38 ]
- >>518
たとえば、 1:2:3:[]は、 1:2:3:[] → 1:2:[3] → 1:[2, 3] → [1, 2, 3]と簡約されるかもしれないし、 1:2:3:[] → [1, 2:3:[]] → [1, 2, 3:[]] → [1, 2, 3]と簡約されるかもしれない。 でも結果は一緒でしょ? 同じように、 Hello, Worldって出力 >> 一文字入力 >>= 前の文字を出力 みたいなのは、まぁ言ってみれば(不正確だけど) [Hello,Worldって出力, 一文字入力, 前の文字を出力]みたいな並びにされる(と思われる。実装はカプセル化されていて不明)。 この並びがプログラム終了後にコンパイラにわたって、コンパイラがこれを順番に処理していく。 実はこの並びをプログラム終了後以外に評価する方法があって、それがUnsafePerfomedIOって言う関数。 getContentとかは実はこれを使って実装されている。 Unsafeという名前が示すように、素人にはお勧めできない。(getContent自体は普通に使える。)
|

|