Предположим, у меня есть две функции: f :: [a] -> b
и g :: [a] -> c
. У меня есть следующие два вопроса:Возможно ли, чтобы представленный случай был оптимизирован в один цикл?
Если я выполняю
(f &&& g) xs
гдеxs :: [a]
, и если обаf
иg
включают петли, возможно ли компилятор оптимизировать эти две петли в одну? (Обратите внимание, что я не спрашиваю, реализует ли некоторый конкретное Haskell компилятор это. Я хочу знать, является ли такой вещь возможно.)Может
traverse
функции из класса помощиTraverse
типа меня есть такая оптимизация с что-то по следующим направлениям:traverse (someCombinator f g) xs
Я думаю, что оптимизация, как в 1., может выполняться суперкомпиляторами. – Landei