3 ms·
> I'm assuming the learner is coming from an imperative language background. Well, Emacs Lisp is pretty imperative: it doesn't optimise tail calls, so loops ar
by chriswarbo 11y ago
> I'm assuming the learner is coming from an imperative language background.
Well, Emacs Lisp is pretty imperative: it doesn't optimise tail calls, so loops are often needed; its distinct namespaces/special-forms for functions and "values" (which includes anonymous functions) makes functional style less attractive in some situations; many tasks are achieved through destructive update of (often temporary) buffers; Emacs itself is controlled by mutating dynamic or global variables; etc.
I would say Emacs Lisp is much closer to imperative languages like Python, than it is to syntactically-similar languages like Scheme, for example.
- lispm 11y ago> so loops are often needed I'm a Lisp user and have learned and used Scheme in projects. I strongly prefer loops over tail recursive iteration. I also prefer higher-order functions like map/reduce/filter/... over tail recursive explicit variants.