Существует ли эквивалент распаковки Python или косвенного расширения параметров bash с Netlogo? - PullRequest
0 голосов
/ 30 августа 2018

Фон

Я использовал этот ответ , чтобы выбрать черепаху на основе распределения вероятностей, определяемого популярностью или пригодностью черепахи.

Выпуск

Я пытаюсь передать параметр, который определяет, от какого свойства черепахи зависит распределение вероятности.

Вопрос

Как я могу выполнить эквивалент "распаковки python" параметра в netlogo?

Пример кода

turtles-own
[
  fitness
  strength
  degree     ;;Node's Connectness
  popularity
  wealth
]

to-report pick-turtle-biased-by-property [turtle-list property-to-unpack]
  let prob-list []
  let turtle-list []

  ask turtles [ 
       set prob-list lput [[property-to-unpack] of self ] prob-list
       set turtle-list lput self turtle-list
  ]

  report first rnd:weighted-one-of-list (map list turtle_list prob-list) last
end

1 Ответ

0 голосов
/ 30 августа 2018

Ключ к тому, что вы пытаетесь сделать, - это использовать «анонимных репортеров» для передачи «свойства для распаковки». См. Анонимные процедуры в руководстве по программированию.

Вот полный пример:

extensions [ rnd ]

turtles-own [
  strength
  wealth
]

to setup
  clear-all
  create-turtles 10 [
    set strength random 100
    set wealth random 100
  ]
end

to go
  print pick-turtle-biased-by-property [ -> strength ]
  print pick-turtle-biased-by-property [ -> wealth ]
end

to-report pick-turtle-biased-by-property [ property-to-unpack ]
  let pairs [ (list self runresult property-to-unpack) ] of turtles  
  report first rnd:weighted-one-of-list pairs last
end
...