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