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的翻译是什么?
\parameter1 ... parameterN -> expression是Haskell的lambdas语法.Scala等价物将是(parameter1, ..., parameterN) => expression(或者,如果我们想要保持函数被curry的事实parameter1 => ... => parameterN => expression).
为此语法选择了反斜杠,因为它是看起来最像λ的ASCII字符.