哈斯克尔的严肃口音

MIR*_*MIX 4 syntax haskell semantics

我是Haskell编程的新手.我试图理解这种语言的语法和语义.我对严重口音的语义有点好奇.当我们使用严重重音时,为什么此代码有效?

elem' :: (Eq a) => a -> [a] -> Bool  
elem' a [] = False  
elem' a (x:xs)  
    | a == x    = True  
    | otherwise = a `elem'` xs {-grave accent used in this line -}
Run Code Online (Sandbox Code Playgroud)

che*_*ner 12

反引号用于将任何二元函数视为中缀运算符.

a `elem'` xs
Run Code Online (Sandbox Code Playgroud)

是完全相同的

elem' a xs
Run Code Online (Sandbox Code Playgroud)

它是(+)使用二元运算符作为函数的补充:

(+) 3 5
Run Code Online (Sandbox Code Playgroud)

是完全相同的

3 + 5
Run Code Online (Sandbox Code Playgroud)