Convenience functions for working with Bools
None of the bools are true.
none [ True, True ]
--> False
none [ True, False ]
--> False
none [ False, False ]
--> True
none []
--> TrueAt least one of the bools is true.
any [ True, True ]
--> True
any [ True, False ]
--> True
any [ False, False ]
--> False
any []
--> FalseNot all of them are true
notAll [ True, True ]
--> False
notAll [ True, False ]
--> True
notAll [ False, False ]
--> True
notAll []
--> FalseReturn the first argument if the given predicate is True. Otherwise, return the second argument.
ifElse "yes" "no" True
--> "yes"
ifElse "yes" "no" False
--> "no"Determine if all predicates are satisfied by the value.
allPass [ (>) 20, (<) 10 ] 11
--> True
allPass [ (>) 20, (<) 10 ] 21
--> False
allPass [ (>) 20, (<) 10 ] 4
--> False
allPass [] 21
--> TrueDetermine if any predicate is satisfied by the value.
anyPass [ (>) 20, (<) 10 ] 100
--> True
anyPass [ (>) 20, (==) 10 ] 21
--> False
anyPass [] 21
--> FalseGiven a value a and a Bool, and wrap a in Just if the Bool is True.
toMaybe 4 True
--> Just 4
toMaybe 4 False
--> NothingThis kind of function is handy when populating lists..
[ Bool.Extra.toMaybe adminRoute (User.isAdmin user)
, Just dashboardRoute
, Bool.Extra.toMaybe profile (User.isLoggedIn user)
]
|> List.filterMap identity..or when generating errors during form validation..
{ field
| error =
Bool.Extra.toMaybe FieldIsEmpty (String.isEmpty field.value)
}Turn a bool into a string
toString True
--> "True"
toString False
--> "False"Try and extract a Bool from a String
fromString "true"
--> Just True
fromString "False"
--> Just False
fromString "t"
--> Nothing
fromString "My pal foot foot"
--> NothingSometimes webservers will return the unideal json of a string "true" rather than just the native boolean value true. This decoder decodes a string that looks like a Bool, into a Bool
import Json.Decode as Decode
import Json.Encode as Encode
Decode.decodeString stringDecoder "\"true\""
--> Ok True
Decode.decodeString stringDecoder "true"
--> Err (Decode.Failure "Expecting a STRING" (Encode.bool True))Sometimes in weird unideal circumstances you need to encode True to "true" instead of just true.
import Json.Encode exposing (encode)
encode 0 (encodeAsString True)
--> "\"true\""
encode 0 (encodeAsString False)
--> "\"false\""
All the bools are true.