-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

what about

>> (cond (= dir :left) ((move-left)(:ok)) (= dir :up)
>> ((move-up)(:ok)) :else :nok)

or whatever the exact syntax is


Am 05.11.2011 08:22, schrieb Alan Malloy:
> On Nov 4, 11:49 pm, Baishampayan Ghose <b.gh...@gmail.com> wrote:
>> On Sat, Nov 5, 2011 at 11:55 AM, Martin DeMello
>> <martindeme...@gmail.com> wrote:
>>> What's the cleanest way to run a piece of code if any branch of
>>> a cond statement succeeded, without relying on the return value
>>> of the individual clauses not to be nil?
>> 
>>> For example, if I have the following piece of code that says I
>>> can only move left or up
>> 
>>> (cond (= dir :left) (move-left) (= dir :up)  (move-up))
>> 
>>> but (move-left) or (move-up) could themselves return nil, is
>>> there any nice way to check if one of them was called?
>> 
>> What about something like this -
>> 
>> (cond (= dir :left) (move-left) (= dir :up)  (move-up) :else
>> :nok)
>> 
>> Or
>> 
>> (cond (= dir :left) [(move-left)] (= dir :up)  [(move-up)])
> 
> Seconded. Though if you can't easily predict what
> move-left/move-up might return (ie they might even return :nok) you
> might need to be more careful. Use a namespaced keyword like
> :my-current-ns/didnt-do- anything, or a gensym (or a fresh Object)
> for guaranteed uniqueness:
> 
> (let [nothing (Object.) cond-result (case dir :left (move-left) :up
> (move-up) nothing)] (if (identical? nothing cond-result) ...))
> 


- -- 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJOtP9TAAoJENRtux+h35aGZ6cQALNrIXvCpEUfrLFAYgauJVWP
8cvu+gXUgCDxxcJR41MOBfDvnVOJmeiCJp0LWH3HpYGD0M+7BfJxMoyg/tdrZggn
L5CSq+oXbeOUDe/7LV7E97u8/gZhHrRNELZGyWbgHX/d0VZpezH2QwMMQKTiwwAh
zxkyUHyahJ1+Li6hrFL/1CI8XwH7JEnjgyd4Zfj2BNkkAmgS2E+iBrGYb8vMQtLo
7Pm6WBrTRjNNyrIKi6axHij2SvKdPKSzbAR3oJPjhL+5yDhrvCdHk0AvzJjiTHsK
RMxaGYjR1/hRDt97+69iJu9hxjAOZSZeCYBid4vAPsdHu+qF/K5Ngr49rnWGFp9Y
g8GkznO7q4L2Lde5WW0GRtNAGTgElEp+9cS1PSxDgyzxEw9+SaJUNLxr5cCsCp8I
dI4Gu88gNgxT6AqomMcrIFd4LyHZ3HEW+rTuFcz4oCcmFQGXHqQVJQV6wbF1NpSf
8BuEskip4mTOdVvSfciC5jLjCO3q8xT/46TAYwhyrjUecEBR9FGy/e6ImN4DILiU
nd8RvvTMKayAo3OudBcM/dN1YRzc0UijAqhFzV6/thvPNARGobGqzqwE3zKAseLY
sPW1hKbJteDHHLBbG5Ia0/QyqdpXmSkyXjS8dahiuOefjuzWxeerGDaOl3wTiw/S
o3J73WASesJ1RulPjqeW
=M8Zh
-----END PGP SIGNATURE-----

-- 
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