Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Now we have much more powerful things, while you are still trying to catch up with lisps.

You're stated opinion seems to be that Clojure is playing catch-up, not that it is the beginning of something better.

Also, as someone who uses Red & Clojure, I'm curious why you think it's more powerful?

I would compare Parse, Red's most notable feature, with core.match from Clojure.



>You're stated opinion seems to be that Clojure is playing catch-up

Not really, it was about Zygomys, Clojure did it thing long time ago and proved it has something to offer, like STM in the core of language.

>I would compare Parse, Red's most notable feature, with core.match from Clojure.

I don't know the internals of core.match, but can it change rules in runtime like this?

  red>> rule1: ['a]
  == ['a]
  red>> changer: [(append rule1 [| 'b])]
  == [(append rule1 [| 'b])]
  red>> parse [a a b b] [any rule1 [number! changer | ] any rule1]
  == false
  red>> parse [a a 1 b b] [any rule1 [number! changer | ] any rule1]
  == true
(the code is not idiomatic or good, it's just what I came up with to quickly demonstrate what I mean)


Well... Kind of.

Clojure is crazy about immutability, so it makes live modifying any variable painful.

However, core.match is usually used with a loop, so it should be possible with some nested lets.


Ok, what I wanted to show is Red's parse is more than just pattern matching, since you can execute regular Red code in parsing rules, walk around the input and other things. You can check it's features here: http://www.red-lang.org/2013/11/041-introducing-parse.html


Variable, modifying... what the heck? You have a language that is crazy about mutability, it should make testing painful ;)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: