Tôi tò mò về biểu thức flip id
(Không phải bài tập về nhà: Tôi đã tìm thấy nó trong tài liệu getOpt
).Tại sao "lật id" của Haskell có loại này?
Tôi tự hỏi tại sao nó lại có kiểu này:
Prelude> :t (flip id)
(flip id) :: b -> (b -> c) -> c
Ví dụ, (flip id) 5 (+6)
cho 11
.
Tôi biết tại sao id (+6) 5
cho 11, nhưng tôi không "nhận" điều flip id
.
Tôi đã cố gắng tìm ra điều này bằng chính bút và giấy nhưng không thể. Ai có thể vui lòng giải thích điều này với tôi? Ý tôi là, làm thế nào để flip id
có loại b -> (b -> c) -> c
?
Hey, ertes, bạn dường như có [một tài khoản khác] (http://stackoverflow.com/users/1488832/ertes), cả hai đều chưa được đăng ký. Nếu bạn đăng ký tài khoản của mình, bạn có thể [hợp nhất chúng] (http://meta.stackexchange.com/questions/18232/how-can-one-link-merge-combine-associate-two-accounts-users-anonymous-unregist) và sau đó có một tài khoản duy nhất cho tất cả các câu trả lời của bạn (mà thực sự là tốt, bằng cách này!). – huon
Cảm ơn, câu trả lời tuyệt vời. Việc bạn đề cập đến '$' làm cho nó trực quan hơn để hiểu và tôi vui vì bạn đã không bỏ nó ra. Nó sẽ mất bộ não của tôi một vài ngày nữa để hiểu đầy đủ câu trả lời của bạn. –
Câu trả lời hay. Suy nghĩ về 'lật id' là' flip ($) 'giúp rất nhiều. – Garrett