Non empty lists using Zippers
type alias Book =
List Page
currentPage : Book -> Page
currentPage book =
case book of
page :: _ ->
page
[] ->
Debug.todo "this is a dead end."
Question
How can I ensure that a list always contains at least one element.
Answer
Such a list is called a Zipper List:
type alias ZipperList a =
{ previous : List a
, current : a
, next : List a
}
Further reading
📦Package: miyamoen/select-list
📦Package: wernerdegroot/listzipper
Last updated
Was this helpful?