首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言与Haskell

C语言与Haskell
EN

Stack Overflow用户
提问于 2011-07-04 15:26:09
回答 3查看 285关注 0票数 2

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

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

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

谢谢

梅拉维

EN

回答 3

Stack Overflow用户

发布于 2011-07-04 16:25:13

下面是一个非详尽的列表:

  • return并不是你想的那样means.
  • if-then-else更像是C的?-:而不是C的if-else。特别是,else分支与optional.
  • Indentation无关。在do块中使用if-then-else时要特别小心。
  • 没有隐式类型转换。(有一些函数可以显式地在不同的数值类型之间进行转换,这是您最常遇到的问题。)
  • 没有C风格的循环。取而代之的是使用map/fmap/<$>foldr /其他折叠函数、filterzip/zipWith/etc或列表理解,这取决于你的“循环”做了什么。(如果您需要的话,可以使用递归。)
  • 可变状态使用起来很笨拙(通常是一个错误的解决方案)。
票数 5
EN

Stack Overflow用户

发布于 2011-07-04 15:42:35

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

票数 0
EN

Stack Overflow用户

发布于 2011-07-04 16:09:41

主要的问题是什么?我想,一开始你会错过可变结构。

至少,这是我在花了太多时间使用过程语言之后接触到一种函数式语言时发生的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6568491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档