I like dash because it gives me the convenience of threading macros and anaphoric functions. Are there options for those in compat/emacs standard?
I like dash because it gives me the convenience of threading macros and anaphoric functions. Are there options for those in compat/emacs standard?
I looked for anaphoric functions elisp on both DDD and Google. I believe that DDD uses Bing so TL;DR: Bing is not good at searching stuff, only basic queries. After maybe a couple of years of DDD I intuitively knew that I would have had to ask that question to Google.
Threading macros and stuff like if-let & co. have been available for a while and are backported by compat.
I have never seen an example of if-let that made me understand it, but I see thread-first and thread-last, those may be useful.
Thanks!
They are often useful when you have a computation that might fail at any step, sort of like with Maybe monads in Haskell. Eg. if I want to retrive a password from auth-source, it might be that no entry exists, or that the entry has no password entry. In that case I do:
(if-let* ((auth (auth-source-search :host "domain.org"
:create t))
(func (plist-get (car auth) :secret))
(pass (funcall func)))
(use-to-login-to-some-service pass)
(user-error "Cannot find password"))