Consensus seems to be: (progress-state model old-state) -> new-state
and use currying to create a closure around the model. Thanks! On Mon, Sep 15, 2014 at 5:18 AM, Quzanti <[email protected]> wrote: > Is there a limited number of models? > > The model should stay decoupled from the state as they are totally distinct > > so general-fn[model old-state] -> new-state > > then either you (if you know the model) or the user if they can choose any > model should define a partial fn > > partial specific-model-fn general-fn[model] > > so that it is always clear which model is being used to idiot proof the > situation, which was your worry > > the partial fn can then be used with all the clojure goodies such as > iteration and reduction as jony hudsun has pointed out > > all I am adding to the debate is suggesting having a named partial fn > named after the model you are using, for clarity > > On Sunday, September 14, 2014 3:28:10 AM UTC+1, RJ Nowling wrote: >> >> Hi all, >> >> I'm new to Clojure and implementing a Markov Model as part of a larger >> project. I'd like some advice on the API for a progress-state function. >> >> I see two possible options. In the first option, we always ask the user >> to provide and keep track of the MSM state themselves: >> >> (progress-state markov-model previous-state) -> new-state >> >> In the second approach, we create a record that combines a model and a >> current state: >> >> (defrecord MarkovProcess [model current-state]) >> >> (progress-state markov-process) -> updated-markov-process, new-state >> >> Which of these approaches is more idiomatic for Clojure? Are multiple >> return types an accepted practice in Clojure? Is there a third, better way? >> >> Thanks in advance! >> >> RJ >> > -- > 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/t7th1wY-Vos/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. > -- em [email protected] c 954.496.2314 -- 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.
