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

The example that most typifies my issues with Clojure syntax is let-binding. In Lisp it's very clearly structured:

  (let ((foo bar)
        baz
        (quux frob))
    ...)
In Clojure not only are the bindings unstructured, they are thrown into a vector. Not a list, not a map (for which Clojure has dedicated syntax, mind), a vector.

  (let [foo bar baz quux frob]
    ...)
And that is one of the only two places I know of where Clojure arbitrarily uses a vector when it uses lists everywhere else:

  (defn foo [bar] ...)
Instead of either of:

  (defn foo (bar) ...)
  [defn foo [bar] ...]


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

Search: