flip' :: (a -> b -> c) -> (b -> a -> c)
flip' f = g
where g x y = f y x
그러나 함수 이름을 g 및 GXY 점유율 FYX와 같은 값을 반환합니다 '기능을, 그 플립 보인다' gxy = fyx "이면 fyx는 함수 호출이고 값을 반환 할 것이고 gxy는 값을 반환 할 것이므로"where v2 = v1 "이라는 말이 맞습니까?
나는 코드가 작동 할 것이라는 것을 알고 있지만, 이것이 일어나는 방법에 대해 더 알고 싶다.
누구나 아이디어가 있습니까? where g x y = f y x
당신에게
"g x y = f y x"가 g의 함수 정의를 의미하는 경우 다음 코드가 작동하는 이유는 무엇입니까? 'fxy'가 값이지만 반환 유형이 함수 여야하기 때문에 'flip':: :: (a -> b -> c) -> b -> a -> c flip 'fyx = fxy – user3129535
이유가 없습니다. 누구나'flip 'f = \ xy -> fyx'보다는 그것을 정의 할 것입니다 (당신이 아주 명료하게되고 싶다면). – augustss