+(defun one-of (agent-set)
+ "ONE-OF AGENT-SET => RESULT
+
+ RESULT: RANDOM-AGENT | :nobody
+
+ARGUMENTS AND VALUES:
+
+ AGENT-SET: An agent set
+ RANDOM-AGENT: an agent if AGENT-SET is non empty
+
+DESCRIPTION:
+
+ From an agentset, returns a random agent. If the agentset is empty, returns nobody.
+
+ See http://ccl.northwestern.edu/netlogo/docs/dictionary.html#one-of"
+ (let*
+ ((agent-set-list (agent-set-list agent-set))
+ (length (length agent-set-list)))
+ (if (zerop length) :nobody (nth (clnl-random:next-int length) agent-set-list))))
+