In one of the callback functions in the defscreen I have a pipeline of
functions that do something to the entities vector and return the resulting
entities. I do something like this:

(->> entities
  (process-entities01)
  (process-entities02)
  (map (fn [entity]
          (->> entity
             (process-entity01)
             (process-entity02)))
  (process-entities03))

And that does not work, because each of the 'process-entities' functions
are written in a way that expect a vector as input. Likewise, they each
output a LazySeq unless I convert them back to a vector before returning.
But I can't do that for the map function in the pipeline. But this does
work:

(->> entities
  (process-entities01)
  vec
  (process-entities02)
   vec
  (map (fn [entity]
          (->> entity
             (process-entity01)
             (process-entity02)))
  vec
  (process-entities03)
  vec)




On Tue, Apr 15, 2014 at 3:34 PM, Zach Oakes <zsoa...@gmail.com> wrote:

> Kris, the entities are automatically converted back into a vector by
> play-clj after being returned by a given function. Can you elaborate on
> what problem you believe is occurring when you don't change it back to a
> vector?
>
>
> On Tuesday, April 15, 2014 5:26:07 PM UTC-4, Kris Calabio wrote:
>
>> James, I have a question. I see this pattern a lot in the sample code and
>> in your code as well, for example:
>>
>> (defn- move-player [entities]
>>   (->> entities
>>
>>        (map (fn [entity]
>>               (->> entity
>>
>>                    (update-player-position)
>>                    (update-hit-box))))
>>        (remove-touched-apples)))
>>
>>
>> When the entities vector gets threaded through the map function, it comes
>> out as a LazySeq. But don't we want to keep the entities as a vector? This
>> seems to be causing problems in my own code, and the only way to keep it
>> working is to change it back to a vector every time I do this, which seems
>> inelegant. Just wondering if I'm missing something.
>> -Kris
>>
>>
>> On Sun, Apr 13, 2014 at 3:13 PM, James Trunk <james...@gmail.com> wrote:
>>
>>> There's a link to a gist of 
>>> core.clj<https://gist.github.com/Misophistful/9892203>in the video's 
>>> description.
>>>
>>> Cheers,
>>> James
>>>
>>>
>>> On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote:
>>>
>>>> Actually, I thought it would be even more helpful if you had the source
>>>> code available (for searching/skimming). Is that somewhere online?
>>>> -Kris
>>>>
>>>>
>>>>  On Sun, Apr 13, 2014 at 2:47 PM, James Trunk <james...@gmail.com>wrote:
>>>>
>>>>>  Hi Kris,
>>>>>
>>>>> Thanks for your comment, and I'm very glad that you found the video
>>>>> helpful.
>>>>>
>>>>> I started doing screencasts because I realised that I learn a new
>>>>> concept fastest by watching someone else doing/explaining it - and I
>>>>> figured I might not be the only one. Saying that, I know screencasts 
>>>>> aren't
>>>>> for everyone, and they have a few drawbacks compared to text (harder to
>>>>> search, skim, or repeat sections). So positive comment like yours remind 
>>>>> me
>>>>> that I'm not the only auditory/visual learner around here, and inspire me
>>>>> to keep going. Thanks!
>>>>>
>>>>> James
>>>>>
>>>>>
>>>>> On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:
>>>>>>
>>>>>> Great video! I've looked through Zach's examples, and even started
>>>>>> coding a game myself. But your screencast helped me have a better
>>>>>> understanding of some of the concepts and code that I was having trouble
>>>>>> understanding just by looking at the example games. Thanks!
>>>>>> -Kris
>>>>>>
>>>>>> On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:
>>>>>>>
>>>>>>> Hi everyone,
>>>>>>>
>>>>>>> I thought some of you might be interested to watch my screencast
>>>>>>> about game development in Clojure with 
>>>>>>> play-clj<https://www.youtube.com/watch?v=9ilUe7Re-RA>
>>>>>>> .
>>>>>>>
>>>>>>> Cheers,
>>>>>>> James
>>>>>>>
>>>>>>  --
>>>>> 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 a topic in the
>>>>> Google Groups "Clojure" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/clojure/mR1IBJ_OomY/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, 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 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 a topic in the
>>> Google Groups "Clojure" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>> topic/clojure/mR1IBJ_OomY/unsubscribe.
>>> To unsubscribe from this group and all its topics, 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 a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe.
> To unsubscribe from this group and all its topics, 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