First chapter exercises.

Hey @fabioyamate, just finished the first chapter's exercises. Could you take a look?
the `[]` in Haskell is considered as a List, which is different from the tradicional array. Arrays have constant access with indexed elements, while list are linked-list. This is why we can use pattern matching `x:xs` to extract the head and tail easily. Linked list is good for lazy evaluation. This is similar on Erlang.