Clojure recursive:

```
(defn my-count [xs]
"P04 (*) Find the number of elements of a list."
(loop [num 0 xs xs]
(if (next xs)
(recur (+ num 1) (next xs))
(+ num 1))))
```

Clojure with reduce:

```
(defn my-count-reduce [xs]
"P04 (*) Find the number of elements of a list."
(reduce (fn [[c xs]] (inc c)) 0 xs))
```

Scala recursive:

```
def length[T](list: List[T]): Int =
list match {
case Nil => 0
case x :: rest => 1 + length(rest)
}
```

Scala foldLeft:

```
def length[T](list: List[T]): Int =
list.foldLeft(0)((count, _) => 1 + count)
```

This last can probably be improved.