6 ms·
Curious: what kind of new control structures do you miss in other languages?
by LessDmesg 7y ago
Curious: what kind of new control structures do you miss in other languages?
- RHSeeger 7y agoA good example would be a case switch, that ran the first block that evaluated to true (lisp has this, many languages don't). That being said, custom control structures can abstract away some things.
- bjoli 7y agoDelimited gotos. Many lacks proper looping constructs. CL has a package a macro that gives you a limited version delimited continuations which are handy for some situations.
- stevelosh 7y agoThis would save me literally thousands of lines of code at my day job: (defmacro ?= (symbol-or-symbols expr) (let* ((symbols (etypecase symbol-or-symbols (cons symbol-or-symbols) (symbol (list symbol-or-symbols)))) (tmps (loop :for s :in symbols :collect (gensym (symbol-name s)))) (err (gensym "ERROR"))) `(multiple-value-bind (,@tmps ,err) ,expr (if (not (null ,err)) (return ,err) (setf (values ,@symbols) (values ,@tmps))))))