Retrieve data about another agent, a list of other agents, or a group agent.

Synopsis

ask(agent-id, expression)


Description

This function returns the value of the given expression, evaluated with respect to the given agent or list of agents. This returns a single value if a single agent is given; or a list of values of the same size if a list of agents is given.

If the first argument is the name of a group, such as School or Workplace, then the agent is the group agent representing the calling agent’s group of that type.

If there is no such agent or the agent is the current agent, this function returns $$0$$.

Parameters

agent-id

an expression that evaluates to the ID of an agent.

group

the name of a group.

agent-list

a list-expression that evaluates to a list of agent ids.

expression

Either a single-valued expression or a list expression.

single-valued-expression

A single-valued expression (which cannot be a list).

Returns

The first two forms return a single value if the second argument is a single-valued expression, and a list of the second argument is a list.

The third form must have a single-valued expression for the second argument. It returns a list with one value per agent listed in the first argument.

The value or values returned are determined by evaluating the second argument with respect to the other agent or agents.

Examples

The following sets the value of sibling_age to the age of the agent whose ID is stored in the variable my_sibling:

sibling_age = ask(my_sibling, age)


The following sets the value of the list variable sibling_friend_list to the list of agent IDs stored in the sibling’s personal list variable my_friend_list:

sibling_friend_list = ask(my_sibling, my_friend_list)


The following sets my_household_ages_list to a list of the ages of the members of the agent’s household:

my_household_ages_list = ask(members(Household), age)


Suppose the calling agent is a member of a group called Theater. Then the following sets available_tickets to the value of the my_tickets personal variable for the group agent of the agent’s Theater:

available_tickets = ask(Theater, my_tickets)