elm/exercises/sublist/Sublist.example.elm

40 lines
758 B
Elm
Raw Permalink Normal View History

module Sublist exposing (..)
2015-10-12 16:46:15 +00:00
version : Int
version =
2
2016-04-10 03:15:51 +00:00
type ListComparison
= Equal
| Superlist
| Sublist
| Unequal
2016-04-10 03:15:51 +00:00
sublist : List a -> List a -> ListComparison
2015-10-12 16:46:15 +00:00
sublist alist blist =
if alist == blist then
Equal
else if inList alist blist then
Superlist
else if inList blist alist then
Sublist
else
Unequal
2015-10-12 16:46:15 +00:00
inList : List a -> List a -> Bool
inList alist blist =
let
getLastInList sublist =
Maybe.withDefault [] (List.tail sublist)
in
if (List.length alist) < (List.length blist) then
False
else if (List.take (List.length blist) alist) == blist then
True
else
inList (getLastInList alist) blist