> You're at a party talking to a member of the attractive sex.
For some, there can be more than one attractive sex.
HN user
> You're at a party talking to a member of the attractive sex.
For some, there can be more than one attractive sex.
And Ubuntu LTS.
Local hackerspace draws an eclectic crowd. Hardly like-minded in most ways, but always interesting. (http://tangleball.org.nz)
Networking through it also often leads to people from neighbouring groups, including artists, academics, entrepreneurs, politicians, activists and so on (many of whom might not self-identify as hackers/makers).
That sounds useful, but I'm unfamiliar with iTunes and its store, and would rather not register with them or use their software. Is there some easier way to do it?
Web version: http://clojure.org/cheatsheet
It's unnecessarily ugly.
There's a lot of unnecessary state, where refs are initialized to nil, then only updated to a fixed value. There's side effects in transactions (mostly around the Timer). Not one function is defined with parameters, which ought to raise alarms. The flow resembles Java code rewritten in Clojure, rather than a functional Clojure program.
Besides that, much of the code is either non-idiomatic or primitive: the 'ns' macro should be used instead of 'import'; 'alter' can be better than 'ref-set'; 'when' is better than 'if' without an else form; the proxy identation is wrong.
The AWT/Swing interaction is excusable, as is the poor readability given the brevity constraint for this exercise, but there are still some elementary problems.
I've added a note at the top disambiguating the term too. Thanks for the feedback. :-)
The nomenclature goes something like this. The common noun "lisp" refers to the family of languages; the proper noun "Lisp" refers to Common Lisp; and "LISP" refers to obsolete lisp dialects from long before Lisp's time.
Generally, lisps are not necessarily functional, though some dialects are, to varying degrees. Common Lisp isn't very functional at all; Scheme is much more functional; and Clojure is quite strongly functional.
There are at least five links on the first page of results searching Google for "common lisp download": http://sbcl.sourceforge.net/platform-table.html http://clisp.cons.org/ http://ftp.gnu.org/gnu/gcl/ http://www.franz.com/downloads/ http://www.lispworks.com/downloads/
It's true there is no one link, but his examples suffer a related problem -- no links are provided to Jython, IronPython, JRuby, etc., which is misleading if marginally more convenient.
That said, do people typically download releases, even of Perl, Python or Ruby implementations? I've only used distro packages or RCS checkouts of any of those systems. Is this mainly an issue for Windows or Mac users?
Perhaps it's the function shorthand syntax that resembles Perl. This is closer to your macro's surface syntax:
(Σ (fn [i] (* (p i) (log (p i)))) x)
The tradeoff with your macro version is that when you want to leverage Σ as a first-class function (say, with comp or partial), you will end up with #() or (fn..) in the calling code. You can't escape it -- it's a natural way to write functional Lisp code.It's no less readable than the rest of Clojure's API. You can reasonably expect a Clojure user to understand functions as arguments.
You can. For instance, SBCL introduced support for it around version 0.8 or so (years ago).
It looks like standard behaviour defined by event cancelation and default actions in the W3C DOM2 Events spec. Whether this is cross-browser or not isn't obvious. Suppressing default actions with event.preventDefault() seems to work in Firefox, at least.