从这个答案中,我们学习了如何\x y z -> f x (g y z)在Haskell中以无意义的方式实现该函数,其中f和g是函数.我的问题是
如何
\x -> f (g x) (h x)在Haskell中以无点的方式编写函数?以下是定义的fgh函数f (g x) (h x).
我目前想到的想法如下.
uncurry f (mapTuple ($ x) (g, h))
Run Code Online (Sandbox Code Playgroud)
但是几次尝试表明这是错误的; 甚至部分map ($ x) [g, h]可疑:如果g和h有不同的范围?
此外,可读性在这里不是一个问题.
任何帮助都是真诚的感谢.
该箭头的版本将是
uncurry f . (g &&& h)
Run Code Online (Sandbox Code Playgroud)
要么
(g &&& h) >>> uncurry f
Run Code Online (Sandbox Code Playgroud)
如图:
g ????
? ?
???? &&& >>> uncurry f ???
? ?
h ????
Run Code Online (Sandbox Code Playgroud)