"I think the point is to get nil if x does not satisfy some predicate." <-- 
exactly.

I basically want something like `if-let`, but which returns x instead of 
f(x). `(if-let [m-with-k (contains? m k)]...` results in `m-with-k` 
evaluating to `true`, not `m`. I *think* it's better to reject something 
that doesn't meet your criteria early, as opposed to guarding against not 
accidentally doing something like `(.toUpper {:foo m})` and getting an 
error every step of the way.

But like I said, I'm totally willing to believe there's a more 
idiomatic/appropriate way of doing things.

On Friday, October 24, 2014 4:59:33 AM UTC-4, Gary Verhaegen wrote:
>
> I think the point is to get nil if x does not satisfy some predicate.
>
> The best option would depend on the context in which these expressions are 
> used, but one option would be to write your predicates to return the input 
> as the truthy value (and nil otherwise).
>
> On Friday, 24 October 2014, Laurens Van Houtven <[email protected]> wrote:
>
>> Hi Sam,
>>
>>
>> I’m not sure I understand. If not for sequences, then what for? `(if 
>> (pred x) x)` looks like it’s missing an else-clause; so I don’t know what 
>> happens when (not (pred x)).
>>
>> From the rest of your e-mail it sounds a little bit like you might want 
>> (get m x x)? (i.e. get me x if x isn’t in m; otherwise give me the value 
>> mapped to x in m).
>>
>>
>> hth
>> lvh
>>
>>
>> On 24 Oct 2014, at 06:06, Sam Raker <[email protected]> wrote:
>>
>> > Is there anything simpler/more idiomatic than `(if (pred x) x)`? What I 
>> really want is something better than `(if (= (get a-map a-key) a-val) 
>> a-map)`/`(if (= (get-in a-map some-keys) a-val) a-map)`, but that might be 
>> too specific to have been 'cached' somewhere.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Clojure" group.
>> > To post to this group, send email to [email protected]
>> > Note that posts from new members are moderated - please be patient with 
>> your first post.
>> > To unsubscribe from this group, send email to
>> > [email protected]
>> > For more options, visit this group at
>> > http://groups.google.com/group/clojure?hl=en
>> > ---
>> > You received this message because you are subscribed to the Google 
>> Groups "Clojure" group.
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> an email to [email protected].
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to