Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 这个表达式可以不加括号或反勾吗?_Haskell_Function Composition - Fatal编程技术网

Haskell 这个表达式可以不加括号或反勾吗?

Haskell 这个表达式可以不加括号或反勾吗?,haskell,function-composition,Haskell,Function Composition,点()和美元($)运算符能否单独替换括号? mul和add函数是填充函数,即应用顺序必须保持不变。 这是一个更好地理解上述运算符的练习。您可以使用mul的代数性质: mul (add 2 3) 5 您可以使用combinatorflip来反转参数的顺序。以下每一行都是等效的: mul 5 $ add 2 3 flip定义如下: mul (add 2 3) 5 (flip mul) 5 (add 2 3) flip mul 5 $ add 2 3 但是,我不认为两个操作符和$就足够了完全替换

点(
)和美元(
$
)运算符能否单独替换括号?
mul
add
函数是填充函数,即应用顺序必须保持不变。
这是一个更好地理解上述运算符的练习。

您可以使用mul的代数性质:

mul (add 2 3) 5

您可以使用combinator
flip
来反转参数的顺序。以下每一行都是等效的:

mul 5 $ add 2 3
flip
定义如下:

mul (add 2 3) 5
(flip mul) 5 (add 2 3)
flip mul 5 $ add 2 3

但是,我不认为两个操作符
$
就足够了

完全替换括号,还是允许引入新的括号?完全替换,是的。使用where子句可以很好地扩展到更复杂的示例
mul s 5,其中s=add 2 3
当且仅当实际使用的函数具有该属性时,请参阅“mul和add函数是填充函数”。当然,该行旨在解释为一个先决条件。我认为,如果从字面上理解OP的要求,那么这一点就非常接近了。
flip :: (a -> b -> c) -> (b -> a -> c)
flip f b a = f a b