>>110
but it is a full embodiment of the "code is data" idea.
Explain
why, I give a reason of why it IS
NOT:
and the compiled new program doesn't have nothing to do with the current running one.
The evaluation
must be done in the current scope of the current program, not elsewhere, not using a compiler, it must be done
inside the language, it's not about macros, it's about evaluating
fucking code generated at
runtime by the
current program, for the
current program.
This is code=data:
(define (generate-lambda args-list &rest body) `(lambda ,args-list ,@body))
You can eval this at
runtime and will generate a lambda using the
runtime arguments you give to that
function, not macro, at
runtime. And will return the lambda, it's not an indipendent file that does indipendent things. The code I generate at runtime is used in the current program. Get it? Eval.
That is true. You don't understand that because you don't understand the essence behind macros. You see them as a final concept, kind of like some VB.NET dolt might view his "if" operator.
Nope, the only thing that resembles Lisp macros in a ``modern'' programming language are D mixins and Nemerle macros.
I mention closures
Ok, but it is known that all new languages support closures
with closures you technically don't need macros (which you don't understand)
Why? A macro is code executed at compile-time, it generates code, a closure is created by from a new lexical scope that closes over a free variable, at runtime. They are not interchangeable, they are two different things, it's like saying ``with functions you don't need ifs''.
Also, three of the six languages I mentioned have fully-fledged eval,
But the code is not data.
C++ has touring-complete templates.
But I can't pass code to a template.
You are concerned about indentation because you are not a programmer.
It was an example, can't I make examples?
You are an idiot. ``in Lisp DSL'' is not the something, it's not a thing.
If it exist, it is a thing. Implement something like that in your favourite popular language.