
クリスマスプレゼントの精神
今日の記事では、Haskellヒープ内にスピリットが入ったギフトを開くとどうなるかを簡単に検討します。 定数と既に計算されているものを除いて、ヒープ内にあるほとんどすべてのものに、スピリットがあります。 全体の質問は、贈り物の精神を何にするかです。
最も単純なケースでは、ほとんど何もありません!

本物のギフト券とは異なり、ギフトを受け取る必要があります(Haskellはサンクの計算を許可せず、内部にある兆候について気にしないでください)

ほとんどの場合、スピリットは完全なアイドラーになります。 贈り物の内容に慣れるために目覚めたとき、彼はまだ何もしていないので、最初に他の贈り物を扱う必要があります!

プリミティブな操作を実行するには、それに関連するすべてのギフトを開く必要があります。

しかし、精神は突然、明白な理由なしに、特別な贈り物を開くことができます...

または、副作用を伴う危険なIOアクションを実行します...

ギフトを開くと、スピリットが他のスピリットを呼び起こすことを考慮してください。

その結果、スピリットは本当の契約を結び、これらすべてが単一の贈り物を開くことになります!

1つのギフト(サンク)を開くと連鎖反応が発生する可能性があるため、怠laな計算が、ヒープ上のすべてのオブジェクトを既にアンパック(計算)していた人々を驚かせる理由です。 サプライズをなくすには、スピリットがギフトの開梱を決定するか(厳密性分析)、またはギフトが既に開梱されているか(償却分析)を理解する必要があります。
前回: Haskell Pile
次回: IOは多くのHaskellで動作します