找了一本用C语言编写的ACM竞赛教程,把其中的程序用 Haskell 重写一遍这可能是熟悉 Haskell 的最好辦法。首先我们看一看 Hello 程序如何实现如果有 C 语言基础,应该很容易理解 Haskell 代码
- putStr “字符串”:显示字符串,不换行
- putStrLn “字符串”:显示字符串换行
计算机的“本职”工作是计算, 因此下面先从算术运算入手看看如何用计算机进行复杂的计算。
这是一段简单的程序用于计算 1+ 2 的 值, 并把 结果 输出 到 屏幕Haskell 程序如下:
当然也可以写成这种形式:
- show 数字 : 把数字转换成字符串
- fromIntegral 整数:用于把整数转化为浮点数。因为 Haskell 對数据类型检查很严格不会把整数自动转化为浮点数的,必须用 fromIntegral 显式作数据转换这样做的好处,可以减少程序设计的错误
C 语言中很簡单的问题在 Haskell 中貌似复杂了很多。其实如果 C 语言库函数中没有事先提供 printf 函数的话也很麻烦。我们会看到 C 语言和 Haskell 各有所长很多情况下,Haskell 種很简单的事情C 语言实现起来却繁琐的很。