Live data from Hacker News

Modern, functional Common Lisp: myths and tips (2020)

ambrevar.xyz

1–10 of 22 posts

Re: Modern, functional Common Lisp: myths and tips (2020)

#5
Love Common Lisp and found this helpful even after using it for several years (coincidentally I was just reading it before it popped up here again). I'm intrigued by Sly, as a long time Slime user, will have to try it out!

I was also just getting some of my environment set up on Guix and the addition of Guix Shell [0] is great. Now I can set up an environment and load a lisp file instantly (after the initial caching) with `guix shell sbcl [sbcl-packages] -- sbcl --load somefile.lisp [arguments]` Works across computers with Guix for reproducible environments, very nice stuff. Even easier from a blank slate than getting Roswell and/or quicklisp set up, just a one liner with Guix.

[0] https://guix.gnu.org/en/blog/2021/from-guix-environment-to-g...

Re: Modern, functional Common Lisp: myths and tips (2020)

#6
I've been building a personal project in both Clojure and Common Lisp to make a DSL for scraping web data, transforming it, and outputting it to a few backend formats.

I would say it's been significantly harder to achieve the same functionality in CL than Clojure, but there are major perks to the ecosystem. I was surprised by how much I've valued conditions and restarts, type inference from SBCL, stack traces, and tooling in general.

Clojure OTOH feels like it takes much less effort to get up and running, feels more intuitive to write, and has far better documentation.

I'm probably going to continue writing my project in both languages in parallel because I love learning and I spend my time poorly. I want to stick with Clojure given that it sees more use these days, but it's hard not to prefer CL once you invest the time in learning its capabilities.

As a final note, was Practical Common Lisp challenging for anyone else? I've read many glowing recommendations of the book, but at times it feels DENSE, and it took a fair amount of staring at the intermediate stages of the projects to understand what was going on.

Re: Modern, functional Common Lisp: myths and tips (2020)

#7
post #6

I've been building a personal project in both Clojure and Common Lisp to make a DSL for scraping web data, transforming it, and outputting it to a few backend formats. I would say it's been significantly harder to achieve the same functionality in CL than Clojure, but there are major perks to the ecosystem. I was surprised by how much I've valued conditions and restarts, type inference from SBCL, stack traces, and to…

I read PCL about seven or eight years ago when I didn't have a lot of experience with programming. It's somewhat dense and some of the topics/chapters may not be absolutely necessary for a beginner to write Lisp programs. But in retrospect, I sometimes find it good reference when I want to brush up certain topics, like CLOS and macro stuffs.

Re: Modern, functional Common Lisp: myths and tips (2020)

#8
post #4

I wish more languages had the interactive development capabilities of Common Lisp. The language deserves more love than it gets.

Yeah, absolutely. I think CL the language should be modernised (more coherent stdlib, naming scheme for destructive functions, etc) but it's basically the only language that offers a handful of really cool features that I can't get anywhere else.

Re: Modern, functional Common Lisp: myths and tips (2020)

#10
> Algebraic types are supported out of the box...

Pretty sure that's not true since you can't define recursive types. For example, the following is invalid (in fact there is no way in the CL type system to define a type that represents a proper list of a given element type without using SATISFIES):

  (deftype proper-list (&optional (element-type t))
    `(or null (cons ,element-type proper-list)))
More details about this issue from when it came up during the standardization process:

https://www.cs.cmu.edu/Groups/AI/html/hyperspec/HyperSpec/Is...

Post reply on HN