So, you are new in Haskell, and you want to know the basis, great!
Haskell is a purely functional programming language. What this is? Well, the variables do not change over time, the variable will always stay setted to the sepcific value given. So, if you called a function twice, with the same parameters given, the output will be always the same. This property is known as referential transparency. It lets you evaluate a function, and get to know if it’s correct.
Haskell is known as a lazy programming language. This means that it will do just the bare minimum computation required to show the result of a piece of code (if you tell him to show it).
And not less important, Haskell is statically typed and has type inference, so, if you do not specify the type of a function, Haskell will intelegently figure it out. And, if you mess up with the types, the compiler will tell you the error and, most of the times, specificly show you in wich line is it that everything blowed up. This helps to fix errors in early stages of development, so the probabilities of the program failing once it is released will be decreased.