You can certainly do this sort of thing in Lisp, using forms like:
(defun square (x) ...)
(lambda (x y) ...)
(add 2 (add 3 (add 4 5)))
In Fexl you would see instead:
\square = (\x ...)
\x\y ...
add 2; add 3; add 4 5
So at least Fexl has the virtue of being more compact in those cases. :) Also, in Fexl, whenever you see a name, it
always refers to a function, unlike in Lisp, where names like "defun" and "lambda" and "prog" are meta-logical syntactic devices and cannot be defined as functions in their own right. And anything like "setq" or "setf" is strictly out of the question in Fexl.
You could of course implement lazy techniques in Lisp, even going so far as to write a Fexl interpreter if you like. I just wanted to see what happened if procedural, mutable, and meta-logical constructs were completely eliminated as possibilities in a language.