haskell - What does [a] stand for exactly? -
i'm doing exercises "real world haskell". 1 design safe version of init :: [a] -> [a]
.
i'm supposed start safeinit :: [a] -> maybe [a]
this have @ moment.
safeinit :: [a] -> maybe [a] safeinit [] = nothing safeinit [a] = if length [a] <= 1 nothing else (take (length [a] -1) [a])
in gchi, when testing safeinit [1,2]
error message
* exception: ch4exercise.hs:(21,1)-(24,44): non-exhaustive patterns in function safeinit
i under impression [a]
stands list (of size) of a
's. doing wrong?
as type, [a]
stand "a list of size of a
s". pattern however, [a]
stands "a list containing 1 element, shall henceforth known name a
". [a,b]
mean "a list containing 2 elements, first of shall known a
, second of shall known b
" , so. []
, seem know, stands "a list containing 0 elements".
this analogous how you'd write list literals expressions. i.e. if write mylist = []
, mylist
empty list , if write mylist = [x]
, mylist
list containing 1 element, value of variable x
.
Comments
Post a Comment