I find let? useful and readable, as do others. There's a bit of brain-
training necessary to read it, but not a lot. Probably no more than
the keyword clauses of the "for" comprehension. The argument that
decades of Lisp programmers haven't invented this particular
"chucklehead" macro is a bit weak, since there have been many other
similar macros.

...and I have learned to love nil, even the :else nil clause that
repels you.

- Evan

On Mar 9, 9:26 am, Craig Brozefsky <cr...@red-bean.com> wrote:
> Evan Gamble <solar.f...@gmail.com> writes:
> > (let? [a foo :else nil
> >        b bar :is even?
> >        c baz :when (> b c)
> >        d qux]
> >  (f a b c d))
>
> Macros like that just make your code so much LESS readable.  I now have
> to understand the semantics of a bunch of keywords specific to the
> macro, their order of operations within the macro, as well as
> recognizing the little ? on the end of the let as I'm scanning. I also
> have to see if that's a keyword or the start of another binding!
>
> :else nil?  really?
>
> :is ...  Geezus christ
>
> :when !?!?!  Put down that nailgun, kid
>
> ;; This maintains the same logic (unless I fucked up transcoding)
> ;; and also the same err, complexity, in that forms are not exeuted if
> ;; they don't need to be, as your initial example, without nesting all
> ;; the way over to the side, or using some weird keyword language.
>
> (when-let [a foo]
>   (let [b bar
>         c (when (even? b) baz)]
>     (when (and c (> b c))
>       (f a b c qux))))
>
> ;; or
>
> (when-let [a foo]
>   (let [b bar
>         c (when (even? b) baz)
>         d (when (and c (> b c)) qux)]
>     (when d (f a b c d))))
>
> Keep your constructs simple, and learn to love the nil.
>
> Also, people have been writing lisp for a real long time, and they
> haven't invented a chucklehead macro like let? yet, so prolly not really
> needed to improve the readability...
>
> --
> Craig Brozefsky <cr...@red-bean.com>
> Premature reification is the root of all evil

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to