An S-expression is then simply an ordered pair, the terms of which may be atomic symbols or simpler S-expressions.

But it seems like functions are able to take as many parameters as they like. Is this a convention that never carried over into implementation or am I missing something?