Способ сделать это в данный момент будет выглядеть примерно так:
to-report at-most [n agents]
report ifelse-value (n <= count agents) [ agents ] [ n-of n agents ]
end
Затем вы можете сказать ask at-most 100 patches [ ... ]
, и вы получите то, что хотите.
Обратите внимание, что это не работает, если есть вероятность, что ваша переменная содержит nobody
вместо набора агентов. В этом случае вы можете преобразовать nobody
в набор агентов, используя patch-set
, turtle-set
или link-set
, в зависимости от типа агента, который, как вы ожидаете, он будет содержать. Например:
ask one-of turtle-set other turtles-here [ ... ]
Обратите внимание, что необходимость прыгать через все эти обручи может исчезнуть в ближайшем будущем. В настоящее время существует открытое предложение добавить примитив к NetLogo для обработки этих случаев: https://github.com/NetLogo/NetLogo/issues/1594.