4 ms·
Lisp (1) metaprogramming sucks. I've got a closure. Why can't I know over which variables? Why can't I know which function called foo (ie.: access the stack)? W
by ced 18y ago
Lisp (1) metaprogramming sucks. I've got a closure. Why can't I know over which variables? Why can't I know which function called foo (ie.: access the stack)? Why can't I know what the fields of my struct are? Even Python knows how to do that one.
I want my macro code, expanded here, to be aware of that other bit of macro code expanded in that other function.
Yeah, there are work-arounds. I've got my own defstruct, my own defun, my own everything. And this morning, I started writing a code walker. With anguish in my heart over a lifetime of debugging the monster that was born today.
Lisp is not an acceptable Lisp, indeed.
(1) That would be Common Lisp and what I know of Scheme. I'll be glad to know there's something better out there.
- stassats 18y ago> I've got my own defstruct, my own defun, my own everything. So is Lisp, a programmable programming language.
- ced 18y agoSee, there is this better-than-Lisp language in the sky, that's not made yet, call it sky-lang. I state that every sufficiently complicated Lisp program contains an ad-hoc, half-broken version of sky-lang. I don't want that. I want the real thing. Every language is "programmable", that's what the Greenspun rule says. Just because Lisp does it better than the others doesn't mean that it's actually close to what can be done.
- icey 18y agoI think the "Lisp as a (potential) blub" meme is starting to catch on. You're starting to see some people release alternatives that are looking fairly viable. Two that are frequently discussed here are Arc and Clojure. Then there are guys like Mark Tarver, who are working on things like Qi to improve Lisp. I think it's great to see that after 50 years, "Lisp, the idea" is still growing.
- Hexstream 18y agoCan you give concrete examples of something useful that's really hard to do without the features you mention that would be much easier if we had those? By the way I agree that Lisp could be a lot better.
- ced 18y agoCan you give a concrete example of something useful that's hard to do in Python but would be so much easier in Lisp? Languages give you a certain amount of expressive power. By stretching the language, you can always reach a bit higher. Python can reach Lisp. It's just damn ugly. Worse Is Better ugly. Right now, everything that I complained about in the top post, I "fixed". But it's damn ugly. So I don't build anything on top of it. I just use it. If these features were done the Right Way, I'm sure the next abstraction level would be obivious. That's how it always goes.