News for hackers. Stuff that matters.
Re:Why Perl 6 is different by megaman821 on Tuesday April 20, 2010 @11:39AM (#1279683)
I have one simple test to determine is something is a Lisp. Does it fit the statement "The program is the data"? It is a simple statement that implies a whole lot of power in a language, like the ability for a program to create a new program.
Re:Why Perl 6 is different by draegtun on Tuesday April 20, 2010 @12:02PM (#1279766)
Neither Io & Ioke are Lisp but both fit the statement The program is the data

Also I think the the ability for a program to create a new program (I assume you mean on the fly) is probably inherent in all dynamic languages.

Re:Why Perl 6 is different by avar on Tuesday April 20, 2010 @01:17PM (#1279986)
"Ability" doesn't imply "first-class support" or "good idea". In languages that aren't Lisp this usually ends up being done by passing a raw string to eval() which is extremely error prone. It's not something you do lightly.

Constructing macros in Lisp however /is/ something you do lightly. A typical lisp program might have a 20/80 division of macros/functions. You aren't going to see a sane program in other languages that do the same thing.

Re:Why Perl 6 is different by draegtun on Tuesday April 20, 2010 @02:19PM (#1280170)
Io & Ioke are like Lisp here. You have full access to the parse tree and don't need to anything as crude as passing raw strings to eval().
Re:Why Perl 6 is different by bad_user on Tuesday April 20, 2010 @01:39PM (#1280066)
> Constructing macros in Lisp however /is/ something you do lightly

For all the ease with which one can create macros in LISP, I haven't seen anything comparable to LINQ yet.

And while I've seen useful macros here and there, I haven't seen anything groundbreaking ... macros are mostly used when you need laziness.

Powerful? Yes. Easy to use? No.

Re:Why Perl 6 is different by lispm on Tuesday April 20, 2010 @02:45PM (#1280240)
If you haven't seen anything, did you actually look around?

Common SQL : http://www.lispworks.com/documentation/sql-tutorial/index.ht...

    (loop for columns being the records of
          [select [*] :from [SpeciesList]
                      :where aardvark]
          do (print columns))
Common SQL provides some kind of embedded SQL that gets expanded with read macros and macros to more low-level Lisp code.