Not quite. The -> operator basically puts the prior result in as argument 
number one of the next statement, so you need to create an expression who, 
when it has the result of :char put in position 1, returns a vector of eye 
color and hair color

Luckily the core library has a function (juxt) which does exactly that - 
given two functions makes the result of calling each on the same arguments.

So you need to create a function (juxt :ec :hc) and then you need to call 
it by wrapping it in (). So

(-> human2 :char ((juxt  :eye-colour :hair-color)))

There are, of course, a million other ways. Here's another which is may be 
easier if you aren't so used to higher order functions.

(-> human2 :char (as-> sub [ (:eye-colour sub) (:hair-colour sub)]))

using the "as->" idiom which basically binds a variable in the subsequent 
expression to the result of the prior expression in the -> (that's not 
really what it does but in this context you can think of it that way).

Hope that helps!

On Thursday, November 24, 2016 at 7:17:17 AM UTC-5, Rickesh Bedia wrote:
>
> That makes sense. Thanks for the help.
>
> Also say I wanted to get both eye-colour and hair-colour.
> Could that be done by (-> human2 :char [:eye-colour :hair-colour])?
>
>
> On Tuesday, 22 November 2016 11:08:45 UTC, Bost wrote:
>>
>> (->> human2 :char :eye-colour) or 
>> (-> human2 :char :eye-colour) or 
>> ((human2 :char) :eye-colour) or 
>> (:eye-colour (:char human2)) all variants work. 
>>
>> Either way it looks like you're asking a very basic question. 
>> I recomend you to go over http://clojurekoans.com/ or read some 
>> tutorial, quick start guide etc. 
>>
>>
>> 2016-11-22 11:42 GMT+01:00 'Rickesh Bedia' via Clojure 
>> <clo...@googlegroups.com>: 
>> > Lets say I have: 
>> >     (def human {:firstname "John" :surname "Smith"}) 
>> > To get the firstname I would run (human :firstname) and this would give 
>> > "John" 
>> > 
>> > However if I now have 
>> >     (def human2 {:name "Bob" :char {:eye-colour "brown" :hair-colour 
>> > "red"}}) 
>> > how would I get the eye-colour? Would it be (human2 :char :eye-colour). 
>> I 
>> > just want the eye-colour 
>> > 
>> > Thanks in advance 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> > Groups "Clojure" group. 
>> > To post to this group, send email to clo...@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+u...@googlegroups.com 
>> > 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 clojure+u...@googlegroups.com. 
>> > 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 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
--- 
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to