简单检查haskell

dan*_*dhi -1 haskell

我是哈斯克尔的新手.在哈斯克尔做这样的事情会是一个好方法吗?

var1 = //can be true or false 
if(var1==true)
{
  //return someething
}
else
{
//
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 6

Haskell是一种功能性声明性语言.这意味着通常没有太多"做某事".有更多的计算东西并返回它.

这可能看起来像挑剔,但例如在Haskell中,无法设置变量两次:一旦为其分配表达式(本身不是值),就不能将其设置为不同的值.

如果要返回某些内容,通常使用模式匹配.例如:

f :: Bool -> String
f True = "Yes"
f False = "No"
Run Code Online (Sandbox Code Playgroud)

这在Java/C#/ ...中有点等同于:

public String f (boolean var1) {
    if(var1) {
        return "Yes";
    } else {
        return "No";
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,Haskell 也是懒惰的:如果返回函数调用或其他任何东西,则不会立即评估该函数调用:只有在必要时才会评估调用.

如何进行I/O可能会出现问题.为此,有一个I/O monad的概念.monad是一种函数式编程技术,可以执行某种评估顺序.

但是函数式编程因此需要与命令式编程不同的"思维模式" :您不会根据一个接一个地完成的命令来考虑程序,而是在将函数组合在一起以生成给定输入的输出方面更多.像通常是数学家或物理学家一样.例如,你构造一个函数,在给定物体的质量和速度的情况下,计算该物体的动能.