Thanks, Colin! I wasn't aware of mapv.
On Tue, Apr 15, 2014 at 6:08 PM, Colin Fleming <colin.mailingl...@gmail.com>wrote: > Note that you could use mapv, to perform the map but return a vector > (filterv was also added at the same time). > > > On 16 April 2014 11:46, Kris Calabio <kriscala...@gmail.com> wrote: > >> I'm not exactly sure, but I think it's the use of 'conj'. My entities get >> out of order if they are not vectors. >> >> All this might not matter though, because I've started rewriting my game >> from scratch since I'm using way too many mutable atoms than is necessary. >> James' screencast cleared a lot of things up for me, and I have a better >> understanding about how play-clj works. >> >> But just to clarify, when exactly does play-clj convert the entities back >> into a vector? Is it when the callback functions of the screen return? >> >> >> On Tue, Apr 15, 2014 at 4:37 PM, Zach Oakes <zsoa...@gmail.com> wrote: >> >>> I see. If your code requires a vector, I think you will have to coerce >>> the list each time as you are doing. Out of curiosity, what are you doing >>> that makes this necessary? Are you using something like get-in? >>> >>> >>> On Tuesday, April 15, 2014 7:11:56 PM UTC-4, Kris Calabio wrote: >>> >>>> 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 <zso...@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/ >>>>>>>>> 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 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. >> > > -- > 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.