Haskell是纯函数式编程,它强调不函数不改变外部世界状态,即,一个函数的输出只由函数接收的输入决定.那如何与外面沟通呢,比如读取一个文件内容并输出这个文件内容(字符串),显然这种函数非纯函数,因为它的输出是会随着文件内容改变而改变.Haskell在纯函数与外部世界之间建立了一扇门,即Monad,这部分内容以后再介绍. (本文例子多来自real world haskell,原因是这本书给的例子太经典) 1. 与外部世界交流 首先给出一个例子如下,这个函数用于读取输入文件,并作一些处理,然后输出…