From: Mike Gold Date: 2009-02-26T16:03:48+09:00 Subject: Re: Nexus Programming Language David Masover wrote: > Mike Gold wrote: > I believe I've shown that either of the following is true: > > Ruby can do everything Lisp can (ParseTree, etc)... > - OR - > there are things Ruby can do that Lisp cannot. Uh, what? Where are you getting this? In ruby, can you take a given method and make some of its arguments lazily evaluated, without changing a thing in the program except the method definition? Not even ParseTree will help you there. I rest my case. Incidentally, 1.8 is odd because it is one big AST in C, with no compilation. Obviously 1.8 is very slow because of this. ParseTree is just giving back what is already there. ParseTree is not available in 1.9 or JRuby, nor is there a plan for it (and due to the nature of compilation and optimization, I don't think it will happen). MRI is a prototype, implementation-wise. >> In this formal, objective sense, >> lisp is more powerful. Even if ruby greenspuns its own tools like >> ParseTree, the language will still be different than the metalanguage. > > Again, a _syntactical_ difference. Nope, not just a syntactical difference. In ruby, from a method you do not have access to the caller's argument expressions, even with ParseTree. That is just one example. >> Don't take it personally. This fact is well understood. There is no >> sense wiggling around it just to somehow respond with a >> counter-argument. > > Then try responding to that counter-argument, rather than "wiggling > around it" by simply repeating your own, and tacking on an argument from > authority. Uh, what? Well I've had enough experience to recognize incuriosity when I see it. You are missing a specific piece of knowledge. If you were curious, you could spend a few minutes reading about lisp macros in order to gain some understanding of the issue at hand. But you want to sit back and watch me "prove" something to you. No, I cannot make you learn. It never works; you must learn for yourself. I have already given sufficient context, and now I have provided a specific case: lazy evaluation. If you don't want to learn, then that's fine. But at least have the good sense to recognize when you don't know something. -- Posted via http://www.ruby-forum.com/.