evancz/elm-html/1.1.0

NOTE: this package moved to elm/html

NOTE: this package is not compatible with Elm 0.19.1

Html.Lazy

Since all Elm functions are pure we have a guarantee that the same input will always result in the same output. This module gives us tools to be lazy about building Html that utilize this fact.

Rather than immediately applying functions to their arguments, the lazy functions just bundle the function and arguments up for later. When diffing the old and new virtual DOM, it checks to see if all the arguments are equal. If so, it skips calling the function!

This is a really cheap test and often makes things a lot faster, but definitely benchmark to be sure!

lazy : (a -> Html) -> a -> Html
lazy2 : (a -> b -> Html) -> a -> b -> Html
lazy3 : (a -> b -> c -> Html) -> a -> b -> c -> Html