It is another syntactic sugar just like where clause. By using let Expression, you can define variables and use them in other expressions.
let <bindings> in <expression>
The variables you define in bindings section are accessed by the expression after ‘in’ part.
Suppose if a triangle has sides a, b and c. As per Herons’s formual, following formula is used to calculate area of triangle.
Where s is semi perimeter.
areaOfTriangle a b c =
s = (a + b + c) / 2
sqrt (s * (s - a) * (s - b) * (s - c))
Prelude> :load triangle.hs
[1 of 1] Compiling Main ( triangle.hs, interpreted )
Ok, modules loaded: Main.
*Main> areaOfTriangle 40 40 20