Giả sử tôi có hai hàm f :: [a] -> b
và g :: [a] -> c
. Tôi có hai câu hỏi sau:Có thể cho trường hợp được trình bày được tối ưu hóa thành một vòng lặp không?
Nếu tôi thực hiện
(f &&& g) xs
nơixs :: [a]
, và nếu cả haif
vàg
liên quan đến vòng, là nó có thể cho trình biên dịch để tối ưu hóa hai vòng này thành một? (Xin lưu ý rằng tôi không hỏi xem một số trình biên dịch Haskell cụ thể thực hiện điều này. Tôi muốn biết liệu một điều như vậy là thể.)thể các
traverse
chức năng từTraverse
kiểu lớp giúp tôi có như vậy một tối ưu hóa với một cái gì đó dọc theo dòng sau đây:traverse (someCombinator f g) xs
Tôi nghĩ tối ưu hóa như trong 1. có thể được thực hiện bởi các siêu máy tính. – Landei