This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-03-20
Channels
- # aleph (15)
- # announcements (12)
- # aws-lambda (1)
- # babashka (54)
- # beginners (35)
- # calva (2)
- # cider (31)
- # clerk (13)
- # clj-kondo (65)
- # clj-on-windows (14)
- # cljsrn (7)
- # clojure (57)
- # clojure-art (1)
- # clojure-dev (1)
- # clojure-europe (19)
- # clojure-nl (1)
- # clojure-norway (7)
- # clojure-uk (1)
- # clojurescript (9)
- # community-development (25)
- # cursive (2)
- # data-science (3)
- # emacs (19)
- # events (1)
- # fulcro (21)
- # humbleui (1)
- # hyperfiddle (15)
- # jobs (8)
- # london-clojurians (2)
- # malli (18)
- # off-topic (1)
- # portal (6)
- # reagent (3)
- # releases (3)
- # sci (1)
- # shadow-cljs (73)
- # spacemacs (4)
- # sql (9)
What was the elisp package again which implements a bunch of clojure-like macros and functions, like ->
https://github.com/emacs-mirror/emacs/blob/42fba8f36b19536964d6deb6a34f3fd1c02b43dd/lisp/emacs-lisp/seq.el thread-first is bundled with Emacs, it's considered idiomatic to use it instead of ->
emacs-devel didn't much like my cheeky dash prefix, so seq.el was created as an alternative.
so seq-
is the prefix . I guess it's recommend to always choose a prefix? If I were to make an .el package with a fn
macro, like this one:
https://github.com/borkdude/clj.el/blob/main/clj.el
it would be bad practice to expose it as fn
but clj:fn
is kinda crap as well. Anything you can do about that?
I tried something like this:
(defmacro clj (&rest body)
`(let* ((map #'clj:map)
(fn #'clj:fn))
,@body))
;; (clj (fn [x] x))
but it doesn't work for macrosFWIW I don't care about the opinion of emacs-devel, this is mostly just for my own usage (and I'm not even sure if I'm really going to use it)
Even if you find a hacky way to expose fn
as fn
, people from melpa and reviewers may complain about that
I made an attempt here to use prefixes together with a macro that lets you use the unprefixed versions:
https://github.com/borkdude/clj.el/blob/31fd337cafa47abdcd7e66ea98f0e85029086489/clj.el#L42
but the macro expansion doesn't evaluate correctly For some reason I get void function clj-let
... what does elisp mean...