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 <[email protected]> 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 <[email protected]> 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 <[email protected]>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 [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 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
>>>>> [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 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
>>> [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 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
> [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.