creatur-5.5.1: Framework for artificial life experiments.

Safe HaskellNone



Provides tasks that you can use with a daemon. These tasks handle reading and writing agents, and various other housekeeping chores, 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

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

noSummary :: SummaryProgram uSource