Thanks Simon, I am using the repl and I am sorry, I should have click share
to make it easier, don't know what I was thinking.

Thanks everyone for your help, really appreciate it.

On Feb 6, 2018 10:32 AM, "Simon Luetzelschwab" <i...@alpeware.com> wrote:

> Hi Nadeen,
>
> Welcome to Clojure!
>
> I'd recommend incorporating Clojure's excellent REPL into your workflow to
> easily try things out with quick feedback.
>
> Here's an online version with your code snippet prepopulated - just hit
> the run button!
>
> https://repl.it/repls/OblongIntrepidAlabamamapturtle
>
> This should do what you like -
>
> (def input-file [{:st_abbrev "AZ", :firstname "john", :lastname "smith"}
>                       {:st_abbrev "FL", :firstname "roy", :lastname
> "wills"}
>                        {:st_abbrev "OH", :firstname "jay", :lastname
> "louis"}])
>
>  (def state-names
>     {"AZ" "Arizona", "FL" "Florida", "OH" "Ohio"})
>
>  (defn state-desc3 [e]
>     (assoc e :state (state-names (:st_abbrev e))))
>
> (map state-desc3 input-file)
>
>
> On Tue, Feb 6, 2018 at 5:27 AM, Nadeen Kurz <kurznad...@gmail.com> wrote:
>
>> Thanks for the quick response James. Yes, you hit the nail on the head
>> with me not understanding map, explanation you provided helps. I like the
>> second option better. I have tried both options and now I am getting
>> "illegalargumentexception, key must be an integer"
>> When I call
>> (state-desc3 input-file)
>>
>> When I do this, it works find of course cause it's only one
>> (state-desc3 {:st_abbr "AZ", :first name "John", :lastname  "Smith"})
>>
>>
>>  1) maybe an index problem which I don't understand yet and researching
>>
>> 2) I need to figure out how to call function for testing
>>
>>
>> On Feb 5, 2018 9:57 PM, "James Reeves" <ja...@booleanknot.com> wrote:
>>
>> First:
>>
>>   (#(map :st_abbrev input-file))
>>
>> Is equivalent to:
>>
>>   (map :st_abbrev input-file)
>>
>> Because your putting the form in an anonymous function, then immediately
>> calling it. This is equivalent to just evaluating the form.
>>
>> Next, I think you're confused as to how `map` handles multiple arguments.
>> If you call:
>>
>>   (map f [1 2 3] [4 5 6])
>>
>> Then it will return:
>>
>>   [(f 1 4) (f 2 5) (f 3 6)]
>>
>> The two collections are lined up, then passed as arguments to the
>> function.
>>
>> If you want to put this into one function, then you don't need an inner
>> map. You instead want:
>>
>>   (defn state-desc2 [input-file]
>>     (let [desc2 (:st_abbrev input-file)]
>>         (case desc2
>>          "AZ" (assoc input-file :state "Arizona")
>>          "FL" (assoc input-file :state "Florida")
>>          "OH" (assoc input-file :state "Ohio")
>>          "default")))
>>
>> You could also write it as:
>>
>>   (def state-names
>>     {"AZ" "Arizona", "FL" "Florida", "OH" "Ohio"})
>>
>>   (defn state-desc3 [input-file]
>>     (assoc input-file :state (state-names (:st_abbrev input-file))))
>>
>>
>>
>> On 6 February 2018 at 01:22, Nadeen Kurz <kurznad...@gmail.com> wrote:
>>
>>> Can someone help me with the following please: I am new to clojure and i
>>> haven't developed in 4 years, previous was mainframe. See questions in blue
>>>
>>> ; Task is to add full state name based on st_abbr
>>>
>>>
>>> (def input-file [{:st_abbrev "AZ", :firstname "john", :lastname "smith"}
>>>                       {:st_abbrev "FL", :firstname "roy", :lastname
>>> "wills"}
>>>                        {:st_abbrev "OH", :firstname "jay", :lastname
>>> "louis"}])
>>>
>>> *Question 1: How do I make these between the lines into one Defn?*
>>> -----------------------------------------------------------------------
>>> (def get-state
>>>   (#(map :st_abbrev input-file)))
>>>
>>> #'user/get-state
>>> ("AZ" "FL" "OH")
>>>
>>> (defn state-desc [get-state input-file]
>>>   (let [desc get-state]
>>>       (case desc
>>>        "AZ" (assoc input-file :state "Arizona")
>>>        "FL" (assoc input-file :state "Florida")
>>>        "OH" (assoc input-file :state "Ohio")
>>>        "default"
>>>        )))
>>>
>>> (map state-desc get-state input-file)
>>>
>>> #'user/state-desc
>>>  ({:st_abbrev "AZ", :firstname "john", :lastname "smith", :state
>>> "Arizona"}
>>>   {:st_abbrev "FL", :firstname "roy", :lastname "wills", :state
>>> "Florida"}
>>>   {:st_abbrev "OH", :firstname "ja  y", :lastname "louis", :state
>>> "Ohio"})
>>> ------------------------------------------------------------
>>> ---------------
>>>
>>> Question 2: I tried to combine in one defn, but it's not working, any
>>> help would be appreciated
>>>
>>> (defn state-desc2 [input-file]
>>>   (let [desc2 (#(map :st_abbrev input-file))]
>>>       (case desc2
>>>        "AZ" (assoc input-file :state "Arizona")
>>>        "FL" (assoc input-file :state "Florida")
>>>        "OH" (assoc input-file :state "Ohio")
>>>        "default"
>>>        )))
>>>
>>> (map state-desc2 input-file)
>>>
>>> #'user/state-desc2
>>> ("default" "default" "default")
>>>
>>> --
>>> 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.
>>>
>>
>>
>>
>> --
>> James Reeves
>> booleanknot.com
>>
>> --
>> 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.
>>
>>
>> --
>> 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.
>>
>
>
>
> --
> Alpeware LLC - 548 Market St #35286, San Francisco, CA 94104
> <https://maps.google.com/?q=548+Market+St+%2335286,+San+Francisco,+CA+94104&entry=gmail&source=g>
> - +1 415 200 3094 <(415)%20200-3094>
>
> --
> 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.
>

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