haskell翻转模拟问题

时间:2013-12-23 12:32:22

标签: function haskell flip

flip' :: (a -> b -> c) -> (b -> a -> c)   
flip' f = g   
    where g x y = f y x

我想问一下,在上面的翻转'函数中,似乎翻转'将返回一个名为g的函数,并且g x y与f y x共享相同的值

然而,在“其中g x y = f y x”中,f y x是函数调用并将返回一个值,g x y将返回一个值,那么“where v2 = v1”是否有意义?

我知道代码可以运行,但我想知道更多关于它实现这种情况的方式。

有人有想法吗?非常感谢你

1 个答案:

答案 0 :(得分:4)

where g x y = f y x中,g x y不是带参数gx的函数调用y。它是函数g的一个函数,它将2个参数xy以及f y x的评估函数作为函数。

所以这意味着flip'给定一个函数f,取两个参数将评估为gg本身被定义为交换两个参数来调用f