C语言和Haskell

时间:2011-07-04 07:26:09

标签: haskell

C语言实际上是一种命令式语言。

Haskell我认为完全不同,因为它是一种函数式编程语言。

来自C(不是专家),为了在Haskell上获得足够的知识水平,我必须面对的主要问题是什么?

由于

Melawe

3 个答案:

答案 0 :(得分:5)

非详尽清单:

  • return并不代表您认为的含义。
  • if - then - else更像是C ? - :而不是C if - else。特别是,else分支不是可选的。
  • 缩进很重要。在if块中使用then - else - do时要特别小心。
  • 没有隐式投射。 (有一些功能可以在不同的数字类型之间进行显式转换,这是你最常被绊倒的地方。)
  • 没有C风格的循环。而是使用map / fmap / <$>foldr /其他折叠函数,filterzip / zipWith /等,或列出理解取决于你的“循环”的作用。 (如果需要,可以使用递归。)
  • 可变状态难以使用(通常是错误的解决方案)。

答案 1 :(得分:0)

这取决于你对“足够”的定义。众所周知,Haskell monad很难掌握,但是你应该能够通过简单的练习开始运行,这样你就可以习惯于以“功能方式”思考,并熟悉类型系统。作为初学者,我强烈建议您开始Programming in Haskell

答案 2 :(得分:0)

主要的麻烦?我想你最初会错过可变结构。

至少,当我花费太多时间处理程序语言之后,当我开始使用函数式语言时,我会发生这种情况。