2つの関数f :: [a] -> b
とg :: [a] -> c
があるとします。私が実行した場合提示されたケースを1つのループに最適化することは可能ですか?
(f &&& g) xs
どこxs :: [a]
、両方f
とg
はループを伴う場合、コンパイラは一つにこれら二つのループを最適化するために、それが可能である:私は、次の2つの質問がありますか? (私はいくつかの特定のHaskellのコンパイラは、私はそのようなことが可能であるかどうかを知りたい。これを実装しているかどうかを尋ねておりませんのでご注意ください。)Traverse
型クラスからtraverse
機能は私がして、このような最適化を持って助けることができます以下の線に沿って何か:f
とg
は、入力リストの異なる量を消費する可能性があるため、traverse (someCombinator f g) xs
1.のような最適化はスーパーコンパイラで実行できると思います。 – Landei