在haskell我可以看到很多素数就像'chainl1'
这是什么意思?
expr = term `chainl1` addop term = factor `chainl1` mulop factor = parens expr <|> integer mulop = do{ symbol "*"; return (*) } <|> do{ symbol "/"; return (div) } addop = do{ symbol "+"; return (+) } <|> do{ symbol "-"; return (-) }
leftaroundab.. 15
prime('
)被视为变量名中的任何数字,即除非它在开头你可以像字母一样使用它.因此名称如foldl'
; 通常那些会引用类似事物的某种"替代",在这种情况下foldl
除了懒惰的评价之外是等价的.
但是,您的示例中实际上没有任何素数.这些都是反击.使用反引号围绕一个函数可以让你像中缀操作符一样使用它,例如
plus :: Int -> Int -> Int plus = (+)
前奏> 4`plus` 5
9
Mihai Maruse.. 6
二进制函数f
通常应用于2个参数f x y
.但是,有一些二进制函数(例如elem
),有理由看到它们是中缀而不是后缀.要将二进制函数移动到中缀符号,请将其括在反引号(`
)中.相比
intersect set1 set2 = [x | x <- set1, elem x set2]
同
intersect set1 set2 = [x | x<- set1, x `elem` set2]
第二个更接近数学符号.
另请参阅相应的了解Haskell章节
PS:您可以为运营商做相反的事情.通常运算符是infix(2 + 3
)但是你可以通过将它括在parens((+) 2 3
)中来将它移动到前缀
prime('
)被视为变量名中的任何数字,即除非它在开头你可以像字母一样使用它.因此名称如foldl'
; 通常那些会引用类似事物的某种"替代",在这种情况下foldl
除了懒惰的评价之外是等价的.
但是,您的示例中实际上没有任何素数.这些都是反击.使用反引号围绕一个函数可以让你像中缀操作符一样使用它,例如
plus :: Int -> Int -> Int plus = (+)
前奏> 4`plus` 5
9
二进制函数f
通常应用于2个参数f x y
.但是,有一些二进制函数(例如elem
),有理由看到它们是中缀而不是后缀.要将二进制函数移动到中缀符号,请将其括在反引号(`
)中.相比
intersect set1 set2 = [x | x <- set1, elem x set2]
同
intersect set1 set2 = [x | x<- set1, x `elem` set2]
第二个更接近数学符号.
另请参阅相应的了解Haskell章节
PS:您可以为运营商做相反的事情.通常运算符是infix(2 + 3
)但是你可以通过将它括在parens((+) 2 3
)中来将它移动到前缀