11.3.1 不同的计算策略
Haskell 是一种纯函数式语言,有一个重要的方面,即,不允许任何副作用。有专门的技术在屏幕上输出,或处理文件系统,但对于程序员来说,它是以一种看起来不像有副作用的方式来实现。在这样的语言中,调整计算排序表达式的顺序是可能的;在Haskell 中,直到需要结果,才计算函数;这不会影响程序的结果,因为,函数没有副作用。
C# 和 F# 的函数都可能有副作用,这是 F# 中的障碍,因此,语言提供多种方式避免,但仍然会在程序中出现。两种语言都需要指定表达式运行的顺序,否则,我们不可能确定哪个副作用先出现,因此,也就不可能进行可靠的编程!
原文地址:http://blog.csdn.net/hadstj/article/details/42611515