Try to guess what will the code display before before clicking Details.
Inspired by https://janiczek.github.io/silent-teacher/.
main =
Html.text "Hello"list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(Debug.toString maybeHead)list =
[]
maybeHead =
List.head list
main =
Html.text
(Debug.toString maybeHead)list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(case maybeHead of
Just head ->
head
Nothing ->
""
)list =
[]
maybeHead =
List.head list
main =
Html.text
(case maybeHead of
Just head ->
head
Nothing ->
""
)Details
Displayed:list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "" maybeHead)list =
[]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "" maybeHead)Details
Displayed:list =
[]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "Empty list" maybeHead)list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "Empty list" (Maybe.map (\head -> "Head: " ++ head) maybeHead))Details
Displayed: Head: onelist =
[]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "Empty list" (Maybe.map (\head -> "Head: " ++ head) maybeHead))list =
[]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "Empty list" (Maybe.map (\head -> "Head: " ++ head) maybeHead))Details
Displayed: Empty listlist =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(Maybe.withDefault "Empty list" (Maybe.andThen (\head -> Just ("Head: " ++ head)) maybeHead))list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(Maybe.map (\head -> "Head: " ++ head) maybeHead |> Maybe.withDefault "Empty list")list =
[ "one", "two" ]
maybeHead =
List.head list
main =
Html.text
(maybeHead |> Maybe.map (\head -> "Head: " ++ head) |> Maybe.withDefault "Empty list")list =
[ "one", "two" ]
maybeHead =
List.head list
main =
maybeHead |> Maybe.map (\head -> "Head: " ++ head) |> Maybe.withDefault "Empty list" |> Html.text