creatur-5.2.0: Framework for artificial life experiments.

Safe HaskellNone



Provides tasks that you can use with a daemon. These tasks handle reading and writing agents, which reduces the amount of code you need to write.

It’s also easy to write your own tasks, using these as a guide.)



type AgentProgram u = Agent u -> StateT u IO (Agent u)Source

A program involving one agent. The input parameter is the agent. The program must return the agent (which may have been modified).

type AgentsProgram u = [Agent u] -> StateT u IO [Agent u]Source

A program involving multiple agents. The input parameter is a list of agents. The program must return a list of agents that have been *modified*. The order of the output list is not important.

withAgent :: (Universe u, Serialize (Agent u)) => AgentProgram u -> AgentId -> StateT u IO ()Source

Run a program involving one agent

runNoninteractingAgents :: (Universe u, Serialize (Agent u)) => AgentProgram u -> SummaryProgram u -> StateT u IO ()Source

runInteractingAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> SummaryProgram u -> StateT u IO ()Source

noSummary :: SummaryProgram uSource