Я оба кода писал на 55i - c eval и 0 перед локалами.
все работало в обоих случаях.
ваша беда, что вы не знаете функциии SAY.... и не пользуетесь ей.
Вот неадаптированная под 55b
возможно нужно эту строку заэвалить было local.rand = {1 10}
Код
[FUNCTION f_choose]
for i 1 4
local.i = "<eval(<local.i>)>"
local.rand = "<eval({1 10})>"
while (0<local.num_<local.rand>> == 1) && (<local._while> < 30)
local.rand = "<eval({1 10})>"
endwhile
local.num_<local.rand> = 1
local.nums_<local.i> = <local.rand>
endfor
for m 1 4
say @,,1 <eval(0<local.nums_<eval(<local.m>)>>)>
endfor
say @,,1 ----------------------------