(define (factorial n)
(if (= n 0)
1
(* n (factorial (- n 1)))))
There, the procedure calls are (= n 0), (* n (factorial (- n 1))), (factorial (- n 1)), and (- n 1). You are not writing "(define ...)" as if it were a procedure call. You are writing it as if it were a special form (because it is one). That's a description of how it psychologically feels. Writing the (if ...) special form feels no different than writing if (...) { } else { } in Java.Lisp and Scheme are not tedious at all. I'd say Common Lisp is one of the least tedious languages.