Netlogo Rnd Extension: загрузка весов вероятности через поля ввода - PullRequest
0 голосов
/ 25 июня 2019

Я хочу получить случайный элемент из этого списка:

set probability-list [["residential" 0.60] ["commercial" 0.30] ["industrial" 0.10]]

Как они называются:

set land-use first rnd:weighted-one-of-list probability-list last

Но я хочу, чтобы вес каждого элемента вводилсяпользователь через поля ввода в интерфейсе модели, а не в самом коде.Для этого я добавил поле ввода для каждого элемента с именами Res, Com и Ind. Таким образом, код для списка теперь:

set probability-list [["residential" Res] ["commercial" Com] ["industrial" Ind]]

, но Netlogo выделяет код с именем веса и сообщением «Ожидаетсябуквальное значение ".Можно ли это исправить?

1 Ответ

2 голосов
/ 25 июня 2019

Когда вы создаете литерал списка в NetLogo, вы можете помещать только литеральные элементы (строки, числа, логические значения), которые вы вводите, в код в этом списке.

Чтобы создать «динамический» список, используяпеременных, вы должны использовать примитив list с круглыми скобками:

set probability-list (list (list "residential" Res) (list "commercial" Com) (list "industrial" Ind))

Это описано в Руководстве по программированию NetLogo в списках .

...