This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-07-25
Channels
- # announcements (9)
- # babashka (38)
- # beginners (41)
- # biff (1)
- # clojure (19)
- # clojure-europe (7)
- # clojure-uk (2)
- # clojurescript (3)
- # code-reviews (30)
- # conjure (4)
- # cursive (8)
- # datomic (32)
- # docker (2)
- # emacs (7)
- # etaoin (2)
- # fulcro (37)
- # graphql (2)
- # jobs (1)
- # jobs-discuss (8)
- # leiningen (10)
- # lsp (36)
- # meander (4)
- # missionary (4)
- # nbb (12)
- # off-topic (1)
- # other-languages (10)
- # pathom (11)
- # re-frame (5)
- # reitit (4)
- # remote-jobs (3)
- # shadow-cljs (13)
- # sql (1)
- # tools-build (4)
- # tools-deps (31)
- # xtdb (2)
Just picked up these two books, Type-Driven Development with Idris and Haskell In Depth at my local used book store. I’m excited to read (some of) them.
What are you hoping to learn? Do you like using types today, or are you more in “explore mode”?
just explore mode! i've dabbled in haskell but never taken the time to learn how it and other similar languages do pure functional programming (compared to Clojure's more fast-and-loose method)
I’ve had an obsession with Haskell myself! Really glad I spent the time digging. I think there’s great advantages really being able to “lean into” the type system.
Particularly with purity and parametricity (i.e. you can’t use something like instanceOf
in a generic context to handle different types differently) - if a function has the type forall a b. a -> b -> a
, there’s only two possible implentations - either it errors out or it returns the first argument.
also, is that https://letoverlambda.com/ in the background? Curious if you’re finding it useful. It’s been on my “possibly interesting list”.
as a way to think about lisps in general, let over lambda is cool as hell. It has some to limited applicability for clojure tho because clojure can't handle nested syntax-quotes. i tried to implement his defmacro!
, and it required a fair amount of work because if you pass a (do-stuff x y z)` to a macro, you get the
(seq (concat (list (quote do-stuff)) (list (quote x)) (list (quote y)) (list (quote z))))
style output, which is not easy to work with. So either you have to mash everything together into a single big macro (ugly and limited abstractions) or you have to build your own syntax-quote (i couldn't figure out how to do it, lol).
chock full of compelling ideas and written in the "smug lisp weanie" style that might turn you away lol. i found it grating but tolerable
They’ll at least look good on my programming books shelf 🥲