Haskell标识符中\的含义

Rod*_*igo 1 lambda haskell identifier

这种技巧之一,当你不熟悉一种语言时,更难找到,但其他人都知道并使用它.

在我的情况下,我想知道当你有一个变量的名称时,它是什么意思,比如ts,你把符号放在\它之前:

newtype Parser a = Parser (String -> [(String, a)])
produce :: a -> Parser a
produce x = Parser (\ts -> [(ts, x)])
Run Code Online (Sandbox Code Playgroud)

我猜这是抽象变量?如果是这样,那么它对其他语言如Scala的翻译是什么?

sep*_*p2k 8

\parameter1 ... parameterN -> expression是Haskell的lambdas语法.Scala等价物将是(parameter1, ..., parameterN) => expression(或者,如果我们想要保持函数被curry的事实parameter1 => ... => parameterN => expression).

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