Metaprogramming
Richard A. O'Keefe
ok@REDACTED
Thu Aug 24 03:14:53 CEST 2006
"Ryan Rawson" <ryanobjc@REDACTED> wrote:
Meta functions? like as in scheme:
(define (lambda (x y)
(lambda (x)
(* x y) ) ) )
Actually, that's not syntactically correct; there's an identifier missing.
Presumably it was meant to be
(define multiplier
(lambda (y)
(lambda (x)
(* x y))))
so that (multiplier 3) returns a multiply-by-3 function.
That's not *META* functions, it's just plain old
"HIGHER-ORDER" functions. And Erlang has them.
multiplier(Y) -> fun (X) -> X*Y end.
I think Erlang has a very weak meta programming ability.
You can't define your "meta functions" in the language -
they are strings.
Under your (rather unusual) definition of meta programming, WRONG.
By the way, the ability to take a string and turn it into executable
code at run time was there in SNOBOL 4 running on things like OS/360
back in the days when mainframes ruled the earth.
More information about the erlang-questions
mailing list