Netlogo making a list out of itself for a given length -
i want create list out of own values given length.
for example, given list [0 1]
, desired list length of 7, output [0 1 0 1 0 1 0]
. length defined population
, , defined slider. declared variable x
should iterate through list. if length of list shorter value of population
should set 0
again.
i tried loop command runs infinitely:
let x 0 loop[ if length exp-dif-li <= population[ ifelse x < length exp-dif-li[ set x 0] [ set exp-dif-li lput item x exp-dif-li exp-dif-li set x x + 1] ] ] ]
to-report continue-list [ lst n ] report n-values n [ item (? mod length lst) lst ] end
example uses:
observer> show continue-list [0 1] 7 observer: [0 1 0 1 0 1 0] observer> show continue-list [0 1] 1 observer: [0] observer> show continue-list [0 1 2 3 4] 22 observer: [0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1]
edit: realized talk why works! n-values n [ ... ]
creates list of length n
sending numbers 0
through n - 1
given reporter. reporter accesses number ?
(this netlogo task syntax). want keep repeating items in original list. function repeatedly cycling through numbers mod
. in general, item i
of new list should item i mod <length of original list>
. so, putting together, n-values n [ item (? mod length lst) lst ]
creates new list of length n
repeating items list lst
necessary.
Comments
Post a Comment