gpt4 book ai didi

haskell - 如何用一元函数组成一个二元函数?

转载 作者:行者123 更新时间:2023-12-03 15:08:01 25 4
gpt4 key购买 nike

我觉得我在这里忽略了一些完全明显的东西,但是使用无点表示法组成二元函数和一元函数的正确方法(如果有的话)是什么?例如,下面的代码编译:

sortedAppend :: (Ord a) -> [a] -> [a] -> [a]
sortedAppend xs ys = sort $ xs ++ ys

但以下代码无法编译:
sortedAppend :: (Ord a) -> [a] -> [a] -> [a]
sortedAppend = sort . (++)

我们可以作曲 (++)sort (按上面显示的顺序)?如果是这样,怎么做?

最佳答案

我认为这些解决方案中的任何一个(我的或其他的)都不是那么漂亮,但我更喜欢....

let sortedAppend = (sort .) . (++)

我之所以喜欢这个,是因为我很容易想到....如果忽略括号,则基本上需要为每个参数添加一个额外的(.)
f . g --one parameter
f . . g --two params
f . . . g --three params

这是有道理的,因为 g x返回具有 N-1 个输入的函数....

....但是那些需要的括号使它变得如此丑陋....
((f .) .) . g

关于haskell - 如何用一元函数组成一个二元函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com