Comment Comment by kazinator Given the existence of exception handling, I would rather apply the pattern: ;; Plain old ANSI Lisp (let* ((x (or (foo) (error "...")))) (y (or (bar x) (error "bar ...")) ...) body) I mean, if, in the end, we are going to "error out", rather than just forward-propagate `nil`.If we are going to just propagate `nil`, then if we have an `iflet` that tests the last variable, we can do: (iflet ((x (expr)) (y (if x (bar x)) (z (if y (foo x y))) ;; z is tested by iflet ...) it's just a bit verbose. That can be condensed with a simpler macro that doesn't have the err stuff. parent kazinator 9 years ago
If we are going to just propagate `nil`, then if we have an `iflet` that tests the last variable, we can do:
it's just a bit verbose. That can be condensed with a simpler macro that doesn't have the err stuff.