technomancy, EN
@technomancy@hey.hagelb.org avatar

one thing that I appreciate in is the ability to learn from the history of lisps

made a big splash and gathered criticism from the Old Guard of lispers by using parens a lot more sparingly than Common Lisp or Scheme; for example let bindings are done inside square brackets instead of a double-layer of parens:

(let [x 1 y 2] ...)

vs

(let ((x 1) (y 2)) ...)

apart from just being tidier, this had the benefit of greater consistency: in Clojure, when you saw an open paren, it usually meant a call to a function or macro, instead of ... some other structure in the language

however, Clojure still had plenty of exceptions to this; I think last I counted there were 7 or 8 distinct things an open paren could mean

in Fennel, we decided that wasn't what we wanted; parens always mean a call to a function/macro ... or in a binding context it could mean binding multiple values:

(local (ok val) (pcall my-function x y z))

but could we do better?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • megavids
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • provamag3
  • JUstTest
  • All magazines