Я думаю, что вы хотите сделать сумму квадратов разностей между константой и списком чисел, где список чисел - это значение Z для нескольких черепах.Если это правильно, то следующая модель - это полная модель, которая делает то, что вы хотите.
turtles-own [ varZ ]
to setup
clear-all
create-turtles 40
[ setxy random-xcor random-ycor
set varZ random 10
set color blue
]
testme
end
to testme
ask one-of turtles
[ set color red
let friends other turtles in-radius 4
ask friends [ set color yellow ]
type "my varZ is: " print varZ
type "sum of squared differences is: " print sum-sq-diff varZ [varZ] of friends
]
end
to-report sum-sq-diff [#constant #listvals]
report reduce + (map [ thisval -> (thisval - #constant) ^ 2 ] #listvals)
end
Процедура sum-sq-diff принимает два ввода: константу и список значений.Он рассчитывает возведенную в квадрат сумму разностей между константой и каждым значением в списке.map
вычисляет квадрат разностей и создает список этих значений, затем суммы reduce
по всему списку.Вы можете проверить это, просто набрав sum-sq-diff 1 [ 2 3 4 ]
в командном центре, и вы вернетесь назад 14 (то есть (2-1) ^ 2 + (3-1) ^ 2 + (4-1) ^ 2).
Остальная часть кода является примером того, как использовать эту процедуру в контексте, который, я думаю, вам нужен, вытаскивая черепах в некотором радиусе и используя их значения переменных в качестве списка.