>>124
I say that being Turing-complete allows you to do anything you can do with another Turing-complete language, {b in a more or less similiar fashion}.
and immediately...
You can't do that in BASIC.
You can't do that in C.
You must have the memory of a chicken, to contradict yourself so hard so soon.
Touring completeness is completely meaningless when discussing differences between programming languages. They all are, and the DSLs which aren't are so fucking different that no sane person would go as far as decided to include them in the comparison.
Mentioning touring completeness only marks you as a sophomore who just learned of the concept and plugs it anywhere he can. Or as an intellectually challenged individual who continues to do so long after he should have realized its limitations.
I repeat, there's an informal but a much more useful metric for comparing the expressive power of different languages. In this metric C and BASIC are far below any language which has proper anonymous functions, and those are pretty damn close to languages which have compile-time transformations, like Lisp. Which, in turn, are somewhat below languages which have unrestricted compile-time transformations, like Forth, but not that far below, compared to the level where having anonymous functions brings you.
Oh, back to your remark about C, I want to point out that I was talking about the languages developed in the past twenty years, C falls short by almost twenty years as well, C++ -- by ten years.
I already explained it many times, the code must be data to be called data, the data must be code to be called code.
The generated code must be evaluable in the current scope, because I want a program that writes a program to modify itself, not a program that writes a program that does something, that would be just stupid.
And I already explained that this objection is no more meaningful than an objection to Haskell's conses on the grounds that you have to make a new cons if you want it modified. It doesn't mean that Haskell's conses are somehow inferior, because nobody cares about such minute details, except for the people who can't see the computation behind the trees.
But your data is not code and your code is not data. You can't do (write '(my configuration list) my-configuration-file), then (read my-configuration-file) and return the same list.
Obviously I can serialize a list into a file and then deserialize it back. Not needing to "import pickle" to use the serializer is not a benefit you mention in a thoughtful discussion.
Also, it has nothing to do with the "code as data" thing. What you probably wanted to say is that I can't dump some code into a file and then import that file. Which I obviously can.
Now implement multiline lambdas, without writing 100M LoC.
You don't know shit about what you're talking about. Python's lambdas are multiline. Just enclose the expression in, wait for it, wait for it, parentheses. What they are not, is allowing statements, and, as it happens, I've recently added about 15 LOC to my "void.py" file, which provide me with all expressions I need, wrapped in functions. With lambdas you can do that.
but not that much nicer than lst.Where(x => x > 0).Select(x => x * 2).
[code](map (lambda (b c) (+ b c)) (filter even? '(1 2 3 4 5 6)) '(1 3 5)))
Your point is? You seem to be quite confused and just latching on any bait you imagine to see. I never said that Lisp is less powerful than C#, there's no need to translate every bit of C# code I show into Lisp. I don't care if your dick is small. However I'd like to point out that Lisp notation is retarded, in C# the flow of data matches the flow of code, in Lisp you get function names progressively more separated from their important arguments. Go make the DSL to fix that, then make all your imaginary friends use it.
There are much more interesting and difficult problems in programming than applying minor changes to syntax.
defmonadfn
HAHAHAHAHA, well, HAHAHA, oh, small minds and shit... HAHAHAHAHAHA.