Hacker News new | past | comments | ask | show | jobs | submit login
Clojure 1.3 Released (groups.google.com)
140 points by icey on Sept 23, 2011 | hide | past | favorite | 15 comments



Due to ClojureScript I have been going about learning Clojure the past few weeks. For anyone in a similar boat found a fun little site http://4clojure.com/ that teaches you Clojure by coding on the website which is pretty cool.


OT: Why do sites impose these arbitrary limitations on username and passwords? I have a standard username/password that I use for sites that don't require super-tight security, and they don't work with their policies. It sort of makes me not want to create an account.


https://github.com/4clojure/4clojure/issues

I think the only restriction is passwords being more than 7 characters, but if you raise a ticket the team _will_ look at it.


Here is a copy of the field labels on the 'register' page:

Username (4-13 chars.) Password (7+ chars.) Repeat Password Email


4clojure is great:

- It starts very gentle but progresses quite rapidly.

- The problems are small and geared towards idiomatic functional programming, which is why I found it more useful than projecteuler for learning Clojure.

- There's also a neat code golf/comparison feature, so you can compare your solutions to others.


You can now also follow other users and see their solutions... not always idiomatic (esp with the code golfers) but it still gives great insight to different ways to solve problems. Also, its not just for beginners, there are some genuinely hard problems on there.



Can anyone explain what this document actually means? http://dev.clojure.org/display/design/Error+Handling


can anyone familiar with the matter explain the reason for this change?

    == 1.1 Earmuffed Vars Are No Longer Automatically Considered Dynamic. ==

    (def *fred*)
    => Warning: *fred* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic ** or change the name.

I generally agree with the old Bertrand Meyer's advice that if you have a "you should never do X" in a language's documentation then the language should just not permit it, so this strikes me as strange.


Initially (1.2.x and older), all vars in Clojure were `dynamic` as in they could be rebound thread-locally. In Clojure 1.3, vars need the `:dynamic` metadata to be made dynamic. To ease the transition, in pre 1.3.0 Clojure, vars with earmuffs were automatically declared as dynamic with an warning. That behaviour is now gone in 1.3.0 and thus the new warning.



ah, makes a lot of sense, thanks for the explanation.


I've shied away from Clojure because I have no Java experience. However, I really love Lisp, and I'd love to get some practical experience with it.

Has anyone used Clojure as their introduction to the Java ecosystem? Did you survive?


I had barely touched java, and last time I really did was something like 1.2, but I love clojure for any free time work I do. Stuff like Lein helps hide a lot of the painful parts of the java ecosystem (it even has plugins to build .war files for web deployments if you don't need to heavily configure your web.xml file, as well as hiding class path fun during development). There are also emacs clojure modes/etc and paredit works as well.


I'm a professional c# programmer. You don't need much Java for Clojure, but it's a bit frustrating when you need something from stdlib that doesn't have a native Clojure version. e.g. date handling.




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

Search: