Hacker News new | comments | show | ask | jobs | submit login

clojure has some great features but syntax is just disgusting (not because of parentheses, i like scheme)

And because of what then?

other tokens like #{ ^{ #() ~@ #_ #^ #'x ˆ:x

Clojure does have more sugar than Scheme, but imho some of it improves readability; for example, using brackets for grouping instead of overloading lists like Scheme does can make code easier to scan, because when you see parens in Clojure there are fewer meanings to choose from (usually only function application or a list literal). Example:


  (let ((x 2) (y 3))
    (let ((x 7) (z (+ x y)))
      (* z x)))

  (let [x 2 y 3]
    (let [x 7 z (+ x y)]
      (* z x)))
I think the Clojure version is easier to read without a paren-matching editor, though Scheme's rigorous minimalism does have its charm.

Pedantic note: #^ for metadata has been deprecated for at least 2 if not 3 versions. ^{ and ^:x aren't special. It's just ^ (reader metadata symbol) followed by a map and keyword respectively. Other things can also be metadata (for instance you can tag something with a classname to indicate a type hint).

You also missed out a few of the syntax quote stuff.

So, other tokens are #{} ^ #() #_ #'x ` ~ ~@

Full details: http://clojure.org/reader

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