Specifying the interface of a CLI command is a good example of a natural place for declarative programming. You just want to write WHAT the interface is, not HOW to do the parsing.<p>When I made a homegrown Lisp implementation, eventually being able to put a single macro "(usage ...)" in the standard library that, when utilised in a script, would invisibly generate the parsing and variable binding machinery, was one of the more rewarding parts.