Arc Forumnew | comments | leaders | submitlogin
2 points by akkartik 4847 days ago | link | parent

I think he'll live :)

You might want to ask him, in addition to how he plans to prohibit recursion, why he'd want to do so.



2 points by zck 4844 days ago | link

Having fun talking to him yet?

I don't think he's actually written much in the language (which is somewhat understandable, since the damn thing isn't implemented yet), and that's causing problems because he hasn't realized how annoying simple things like his any statements become.

I haven't asked him this yet -- I'd like him to answer a question I've asked three or four times now first -- but why do some statements run in reverse order? The definition of let and get from http://code.google.com/p/aha-programming-language/wiki/Getti...:

>The statements after the where clauses are evaluated in the reverse order (i.e. from the end)...

This just seems bizarre, confusing, and not at all useful. But we'll see.

-----

2 points by rocketnia 4844 days ago | link

If a where clause's binding expression ran after the body in an eager language, we couldn't use the value during the body. We'd be limited to using it from inside closures (manual laziness).

-----

1 point by akkartik 4844 days ago | link

Any idea why the where bindings themselves would apply bottom to top?

-----

2 points by rocketnia 4843 days ago | link

I do have ideas, but none that make sense. :-p It does seem better to embrace top-to-bottom side effect ordering throughout all syntaxes of the language, with as few discontinuity points as possible.

But if we want to embrace that, it's probably hypocritical if we use prefix syntax for procedure application. ^_-

  ; runs b, then d, then a
  (a (b c) (d e))

-----

1 point by akkartik 4844 days ago | link

Yeah it'll be interesting to see how it goes. I'm actually more favorably disposed after the thread on the list. His motivation is a reasonable one: to make the static shape of code more closely mimic how it looks at runtime. This requires constraints so it feels kinda wild and whacky. But I'm glad somebody's trying these ideas.

Running statements in reverse order isn't such a big deal. Concatenative languages seem backwards, and even preorder is kinda weird at the start.

The best new languages require so much tolerance to the bizarre that it hurts. Alan Perlis said, "A language that doesn't affect the way you think about programming is not worth knowing." I just realized he didn't say, "A good language.." Potential dead ends can be worth knowing as well.

-----