きらきらと落ちてくる星の欠片
そのあとを星屑が緩やかな舞いを見せていく
もたらされるはさまざまなもの あまりにも多くのもの
それは――星の贈り物
星は何を望むのだろう?
[topic:Haskell]
ITpro に 本物のプログラマはHaskellを使う - 第31回 禁断の機能「unsafePerformIO」の深淵 が掲載されました。
これまで unsafePerformIO が危険だということを理由に、多くの unsafePerformIO の代わりに使える機能について語ってきました。しかし、ある機能が unsafePerformIO よりも適切に利用できる理由については語っていても、なぜ unsafePerformIO が危険なのかということ自体についてはあまり踏み込んだ説明をしてきませんでした。
unsafePerformIO の危険性は、プログラマが期待する処理と unsafePerformIO によって実際に行われる処理との食い違いから発生します。今回は「GHC の最適化機能の結果起こる様々な unsafePerformIO の振る舞い」と「unsafePeformIO の実装」を通して、こうした unsafePerformIO のような機能がどうプログラマの予想と食い違った結果を引き起こす可能性があるかということについて説明しました。
もちろん、unsafePerformIO の使用による危険は何も unsafePerformIO の振る舞いだけで発生するものではありません。unsafePerformIO で実行される I/O アクションによって生じる可能性もあります。流石に unsafePerformIO に関する説明を行う回でそうした問題を起こす可能性のある処理全てを説明することは不可能ですし、そもそも大きく脱線して unsafePerformIO の話ではなくなってしまうので、どうしても unsafePerformIO を使いたくなった時に守るべき規範を示すだけに留めることにしました。そうした unsafePerformIO が問題の直接的な原因ではない例については、I/O 処理を行う機能に対する説明や unsafePerformIO を使って定義されている機能に対する説明を行うところで個別に説明していくつもりです。
[topic:Haskell]
『本物のプログラマはHaskellを使う』読者の集い で、Haskell 連載についての講演を行ってきました。「連載の記事を参考に連載の記事の内容について説明する」のが主になっていたのであんまり参考になるかどうか分かりまませんが、とりあえず当日使った発表資料を以下に置いてきます。
[topic:Haskell]
言語雑談会を行いました。とりあえず以下に発表資料を置いておきます。 Haskell Language Update 2008 の発表資料 (Keynote) ( PDF ) 。
あと、言っていた GHC のビルド時間を測定した記事は以下にあります。GHC 6.8.1 RC 2 当時なので、現在は変わっていますが。
(あとで追記予定。)
かわちょアンテナ - 鞠絵あんてな - 可憐アンテナ - 亞里亞アンテナ
FoaF Explorer,
via
Web View,
via
)

このworkは、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
(背景画像、gift、他のライセンス下にあるもの、およびクリエイティブ・コモンズ・ライセンスでない work の二次的著作物を除く。)