HN user

suskeyhose

75 karma
Posts4
Comments9
View on HN
BQNPAD 3 years ago

It was intended to be this but it was only after the name was established that the author realized that N doesn't come after L.

This is kinda my point tho, CL's symbols are the same as Clojure's vars for this purpose. And the comparison between generic functions and multimethods is obvious and correct here as well.

Late binding is irrelevant because all of this is about functions as arguments, not in funcall position.

The idea is such a long lasting loop would take the function object as an argument and call it repeatedly. Recursive or not (tho in clojure's case definitely not, no tail call optimization), doesn't matter as the lookup happened at the first function call.

So I am no stranger to CL, but the problem solved in the article isn't actually one that's solved by evaluating less than the whole file at once, and in fact I didn't tell anyone to re-evaluate the whole file at all in this article.

The critical idea here is it applies to long-running functions, like a loop, a server, or other things. These, when handed function objects, will not reflect new behavior if you re-evaluate a single function.

The article solves for this by explaining to intermediate programmers that there is a difference between using function objects and using vars, something that Common Lisp programmers learn too by using #' to retrieve function objects and passing symbols and using symbol-function to look up the associated function as needed.

I was dissatisfied with existing Java compilation tools on the Clojure CLI because they all required build scripts or calls to the eval part of the CLI. So I made americano, for when you want to water down your Clojure project with Java.

This tool allows you to specify single or multiple passes of Java compilation, with separate dependencies for compilation.

farolero is a full, thread-safe implementation of Common Lisp conditions and restarts for Clojure. Most of the other implementations are incomplete or fail in cases related to threading, or don't include a debugger. This implementation is full.

I have plans to make an nrepl-integrated system debugger for integration with cider, although the existing debugger is quite good already.

This library has just hit RC3, which includes a test suite adapted from ANSI-TEST, and is ready for release after a tiny bit more testing.

I've written a Discord API wrapper library in Clojure. There've been quite a few of these, but so far this one is the most complete, having full support for sharding, rate-limit handling, and the entire HTTP API (except the webhook endpoints for slack and github compliant webhooks).

Let me know what you think, feel free to contribute, and most of all, have fun building bots!