Earlier quoted context omitted.
No. This is the standard implementation of the length/2 predicate. Like any other language, prolog has a standard library that includes this predicate. You'd never need to write this in practice, but this is how it would be written in the standard library. In general, any general purpose language worth it's salt will have substantial portions of its standard library written in that language, and in this regard, prolo…
I guess, the point was, if list is a built-in construct, the function length should be also built in. (Unless, that is, natural numbers are defined in the standard library.)
It is built in. No need to write your own length predicate. The quoted example is an illustration of a possible implementation.
(Cue boring discussion of "built in" vs. "defined in the standard library".)