?
, представляющий каждый элемент recipients
, теперь заменяется локальной переменной, объявленной в скобках foreach
. Здесь я объявил переменную recip
, но это может быть все, что вы захотите.
to send [msg]
let recipients get-receivers msg
let recv 0
foreach recipients [recip ->
set recv turtle (read-from-string recip)
if recv != nobody [without-interruption [ask recv [receive msg]]] ;; read-from-string is required to convert the string to number
]
end
В этом есть две приятные вещи: вы можете «назвать» знак вопроса, чтобы было легче запомнить, что он обозначает, и, если вы выполняете итерацию по нескольким спискам, вы можете объявить более одной переменной, по одной для каждого списка.
Charles