Cons (Data.List)

Cons is data constructor from Data.List List type. It conses (short for construct, from Lisp parlance) a list by prepending an element to the head of a list.

It is not like Array.prototype.push in ECMAScript because it does not modify the existing structure, but returns a new list instead.

Manually Create a List

> import Data.List (List(Cons, Nil))

> Cons 1 Nil
(1 : Nil)

> Cons 1 (Cons 2 Nil)
(1 : 2 : Nil)

> Cons 1 (Cons 2 (Cons 3 Nil))
(1 : 2 : 3 : Nil)

Note that even though we use Cons, it prints in the REPL with :.

In PureScript, Cons is aliased to the infixr operator :. We use it like this:

> import Data.List (List(Nil), (:)) 

> 1 : 2 : 3 : Nil
(1 : 2 : 3 : Nil)