将函数的结果存储在用作函数输入的变量中

时间:2017-02-25 02:57:16

标签: haskell

我一般都是haskell和函数式语言的新手,但我有一些OO语言背景

有人能告诉我像这样的代码的haskell相当于:

  int x = 5 

  x = doubleThis(x)

  function doubleThis(x){

  return x*x
  }

所以,如果我有一个功能:

doubleThis :: Integer -> Integer
doubleThis x = x*x 

我怎么能这样做,如果我跑了这个:

let x = 5 
doubleThis x
output> 25
x
output> 25 

我最初的想法是它会像:

let x = doubleThis x

但呃....这似乎是一个无限循环

如果你想通过将一个元组连接到一个列表来告诉我如何做到这一点,那么

奖励分数

1 个答案:

答案 0 :(得分:2)

int x = 5

x = doubleThis(x)

function doubleThis(x){return x*x}

你似乎已经想出了如何做最后一行。第一行。

无法做的是中间线。 Haskell故意不允许这样做。您可以做的是

x1 = 5

x2 = doubleThis x1

这完全没问题。但是,您无法更改现有变量的值。这是一个深思熟虑的设计选择。

不要试图用#34来思考;我有这个命令式代码,我如何在Haskell中写一些完全相同的东西?" Haskell的整个就是你以完全不同的方式做事。相反,思考"我实际上试图解决什么问题?在Haskell中最明智的做法是什么?"