为什么我们需要在列表中的函数前放置let

时间:2018-07-16 04:37:38

标签: haskell syntax let

这是原始功能

[let square x = x * x in (square 5, square 3, square 2)]

我试图从上面的行中删除let,但是它不起作用。

[square x = x * x in (square 5, square 3, square 2)]

<interactive>:21:11: error:
    parse error on input ‘=’
    Perhaps you need a 'let' in a 'do' block?
    e.g. 'let x = 5' instead of 'x = 5'

为什么要让我们在那里?

1 个答案:

答案 0 :(得分:5)

列表是根据表达式创建的。引入局部变量名的表达式应以let开头(或更具体地说,应使用let ... in语法)。 square x = x * x是顶层函数声明。