Tôi có nên có thể mong đợi một trình biên dịch Haskell có đủ thông minh để tối ưu hóa các định nghĩa sau đây:ứng dụng một phần và subexpressions tùy thuộc vào chỉ là một tập hợp con của các đối số của một chức năng
h x y = p (m x) (n y)
vào một cái gì đó như thế này:
h x = let z = m x in \y -> p z (n y)
? Đây có thể là tiện lợi nếu m
là đắt để đánh giá, và tôi sử dụng định nghĩa h
's theo cách sau:
main = print $ map (h 2) hugeList