Haskell标识符中\的含义

时间:2018-07-21 17:08:46

标签: haskell lambda identifier

这些技巧之一是,当您不熟悉某种语言时,很难找到它,但是其他人都知道并使用它。

就我而言,我想知道当您有一个变量名ts并在其前面加上符号\时是什么意思。

newtype Parser a = Parser (String -> [(String, a)])
produce :: a -> Parser a
produce x = Parser (\ts -> [(ts, x)])

我猜这是抽象变量吗?如果是这样,它将翻译成Scala等其他语言吗?

1 个答案:

答案 0 :(得分:8)

\parameter1 ... parameterN -> expression是Haskell的lambda语法。相当于Scala的是(parameter1, ..., parameterN) => expression(或者,如果我们想保留函数是咖喱的事实,则是parameter1 => ... => parameterN => expression)。

为此语法选择了反斜杠,因为它是最像λ的ASCII字符。