rundis/RYOLisp — comment on commit dee8fdc28131655888d468985727333bf0e852a8
File: src/com/rollyourowncode/lisp/RYOLisp.groovy line 32
By rundis:

I think you should be consistent a keep the same abstraction level within one method. You already had evaluatestring and runprocedure outside the main evaluate method. Too big an evaluate method would also obscure its clarity imho.
Naming the sub evaluates as evaluateX still keeps hinting to the recursive nature, although maybe not so much in your face.

Regardless I still think switch makes the different paths much easier to read than the conditionals hidden as tests with if methods.