In that case you can use mapv:
(mapv
(fn [xs]
(mapv
(fn [x]
(if (= x "5")
"XX"
x))
xs))
players)
Two notes:
1. There is room for optimization if you only want to map one element. This
currently will just keep going. A smart implementation could bail out of
the inner loop
2. If this is something you want to do frequently you may want to use
different data structures (probably a map) that allow you to access
elements fast.
If you sketch your access and transform patterns then I'm sure we can
recommend a better way.
On Thursday, December 8, 2016 at 11:13:42 AM UTC+1, Rickesh Bedia wrote:
>
> Is there a way to generalise?
>
> I.e a function that allows you to swap any of the 1-9?
>
> On Wednesday, 7 December 2016 18:06:19 UTC, Andy- wrote:
>>
>> One option is to use keep-indexed:
>>
>> (first
>> (keep-indexed
>> (fn [i xs]
>> (first
>> (keep-indexed
>> (fn [j x]
>> (when (= x "5")
>> [i j]))
>> xs)))
>> players))
>>
>>
>>
>> On Wednesday, December 7, 2016 at 5:32:10 PM UTC+1, Rickesh Bedia wrote:
>>>
>>> If I have
>>>
>>> (def players [["1" "2" "3"] ["4" "5" "6"] ["7" "8" "9"]])
>>>
>>> How would I get the index of number 5? I think it should be [1 1] but
>>> don't know how to get this
>>>
>>> If it were more simple such as
>>>
>>> (def players ["1" "2" "3"])
>>>
>>> I can get the index using
>>>
>>> (.indexOf players "2") > 1
>>> (.indexOf players "3") > 2
>>>
>>>
--
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.