首页 > 解决方案 > 为什么我们需要将 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'

为什么有必要在那里?

标签: haskellsyntaxlet

解决方案


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


推荐阅读