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

Why do we need to put let in front of a function in a list

这是原函数

[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'

为什么 let 必须在那里?

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