The code is convoluted, in my opinion, because it tries to hue too closely to the Scheme code in the original giving some unnatural looking JS code as a result. For example:
function member(item, x) {
return is_null(x)
? null
: item === head(x)
? x
: member(item, tail(x));
}
There are examples which have even more but that was the first one I came across clicking the TOC randomly. In Scheme it would be expressed something like this: (define (member? item set)
(cond ((null? set) #f)
((equal? item (car set)) #t)
(else (member item (cdr set)))))
While the parens cause some brains to segfault, the structure of this (how each condition ties to each result) is clearer than that JS mess.