这些技巧之一是,当您不熟悉某种语言时,很难找到它,但是其他人都知道并使用它。
就我而言,我想知道当您有一个变量名ts
并在其前面加上符号\
时是什么意思。
newtype Parser a = Parser (String -> [(String, a)])
produce :: a -> Parser a
produce x = Parser (\ts -> [(ts, x)])
我猜这是抽象变量吗?如果是这样,它将翻译成Scala等其他语言吗?
答案 0 :(得分:8)
\parameter1 ... parameterN -> expression
是Haskell的lambda语法。相当于Scala的是(parameter1, ..., parameterN) => expression
(或者,如果我们想保留函数是咖喱的事实,则是parameter1 => ... => parameterN => expression
)。
为此语法选择了反斜杠,因为它是最像λ的ASCII字符。