Haskell :: The Use of Brackets in Recursion -


i'm wondering, recursion example:

squaresrec :: [double] -> [double]    squaresrec [] = []                        squaresrec (x:xs) = x*x : squaresrec xs 

why on recursive case, there no bracket? shouldn't suppose this:

squaresrec :: [double] -> [double]    squaresrec [] = []                        squaresrec [x:xs] = x*x : squaresrec xs 

i know not work. wondering explanation behind it.

[] matches empty list.

[1] matches list containing 1 element, , must number equal one. note [1] syntactic sugar (1:[]), i.e. matches is: list beginning number 1, followed list empty... complicated way of saying “a list containing single element 1”.

(x:xs) matches list begins x, followed xs (and may contain number of elements, possibly zero). i.e. pattern matches list at least 1 element.

[x:xs] matches again list contains exactly 1 element, , element should match pattern (x:xs). (which doesn't make sense type-wise, because lists contain double-numbers, not lists.)


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -