Flock

A flock is a list of Flockrs defined in terms of a characteristic function that determines which users belong to the flock.

The list changes dynamically as the input to the characteristic function changes (e.g. because of buddies joining, leaving, updating their profile, being added or deleted).

In other words, while the characteristic function can be regarded as an “intensional” representation of a group of friends, the flock is the “extensional” representation of that group. For example, if f is a flock of “all of my friends who are older than 25” (an intensional description), and the friend list is “[Alice (26), Bob (22), Carol (24)]”, then the flock contains only Alice (an extensional representation of the group)

Implementation

Conceptually, a flock is a list of flockrs. Technically, a flock is implemented as a list of profiles. From the profiles, the flock can acquire the flockr's unique username. Given the username, the flock can acquire a far ref to the flockr via its own “owner” flockr.