HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 by Yuji Yamamoto on January 28, 2017 HaskellのIOは奇妙です。 「純粋な関数だけでプログラムが書けるの?」と多くの方が疑問に思うように、実際のところ、副作用のある操作(入出力。ファイルの読み書きやネットワーク通信など)をしなければ、役に立つプログラムは一切書けません。 Haskellではそのものズバリ「IO」という機能を使ってそれを実現します。 しかし一方でHaskellは「純粋」なので副作用が一切ない、とも言われます(例えばWikipediaのこの辺の説明)。 その辺のややこしい問題について、かの「プログラミングHaskell」の訳者、山本和彦さんの記事では、下記のように解説されていました(原文のままコピペしています)。 Haskell の IO では、評価と