從this answer得知如何在Haskell中以毫無意義的方式實現函數\x y z -> f x (g y z)
,其中f
和g
是函數。我的問題是如何在Haskell中自由地實現f(g x)(h x)?
如何在函數
\x -> f (g x) (h x)
以無點的方式在Haskell中編寫?這裏f
g
h
是定義了f (g x) (h x)
的函數。
我現在想到的想法如下所示。
uncurry f (mapTuple ($ x) (g, h))
但是有幾次嘗試表明這是錯誤的;即使部分map ($ x) [g, h]
是可疑的:如果g
和h
有不同的範圍?
此外,可讀性在這裏不是太多的問題。
任何幫助,真誠讚賞。
這只是'liftA2 f g h'。 – melpomene
感謝您的建議。但我對頭痛了解「APPlicative」是什麼。也許有些其他的方式,而不是'Applicative'?還是謝謝。 :) – awllower
當然:'liftM2 f g h' :-) – melpomene