One aspect of your question that makes it difficult to answer is that
you don't explain what the repercussions should be (in terms of
synchronization) when a new applicant or job enters the pool or a new
skill is attributed to an applicant. Should the job<->applicant
matching function be restarted? Are you simply trying to isolate the
matching algorithm from updates to the data structures?



On Mar 2, 10:34 pm, Sophie <itsme...@hotmail.com> wrote:
> As a bit of a newbie to the functional + identity/state design space,
> I'm struggling a bit with where to use identity constructs (refs) and
> where to stay with pure functions, and could use some guidance. Pardon
> me if some of my terms are a bit off. Here is a simple hypothetical
> app for matching Applicants to Jobs.
>
> I have several Applicants, each with some set of Skills. There are
> several Jobs, each with some Requirements. There is some Match
> relation between Skills and the Jobs they can match. The set of
> Applicants, each of their skills, and the set of Jobs can change with
> time. There is a set of Jobs that each Applicant can fill,
> functionally computed from applicant skills & job requirements &
> Match.
>
> Ok, so jobs_that_an_applicant_can_fill is a pure function, I get
> that.
>
> Do I design a single "World" ref whose state changes with time to
> different worlds, so adding a new Applicant or even adding a new Skill
> to an existing Applicant results in a new World value? Or is it better
> to have an "Applicants" ref and a "Jobs" ref that refer to different
> sets of those er.. things?
>
> Can each Applicant have a "skills" ref, whose state changes to
> different sets of Skills? Should I design it this way?
>
> How do I choose? What are the trade-offs?
>
> Any and all guidance, insights, advice etc. welcome!
>
> Thanks!

-- 
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

Reply via email to