Hi Marshall, Writing you're own ask-procedure that operates on lists could be a pretty easy workaround. For instance:
to ask-list [ agent-list commands ] foreach agent-list [ ask ? [ run commands ] ] end which you then call like: ask-list agents-with-repeats task [ do-stuff ] Where `agents-with-repeats` is your list of agents. Note the `task` primitive is unfortunately required. Besides that, this should pretty much be a drop-in replacement for `ask` after you switch to using a list. `of` could be similarly transformed: to-report of-list [ agent-list reporter ] report map [ [ runresult reporter ] of ? ] agent-list end Called like: of-list agents-with-repeats task [ turtle-variable ] Now `with`: to-report with-list [ agent-list predicate ] report filter [ [ runresult reporter ] of ? ] agent-list end Called like: with-list agents-with-repeats task [ turtle-variable = 5 ] Besides reordering arguments and requiring `task`, these should pretty much be drop-in replacements for their agentset counterparts. As you said, the uniqueness of agents in agentsets is quite baked in. Hope that helps! Bryan On Fri Feb 06 2015 at 10:00:48 AM Marshall <marsh...@logical.net> wrote: > A model I'm working on includes a series of functions that implement a > random choice of turtles that will send messages to another turtle. > Recently, I decided it might be better to allow the selection of senders to > be random with repeats. Nicolas Payette's rnd extension > <https://github.com/NetLogo/Rnd-Extension> provides a convenient function > that provides this functionality, returning a list that may contain repeats: > weighted-n-of-with-repeats. (Thanks Nicolas!) > > However, converting a list of turtles with repeats into a turtleset loses > the repeats; agentsets contain only unique elements. So if I want to allow > repeats in the turtles that send messages, I have to rewrite a small but > significant bit of code in different functions, replacing ask's with loops, > etc. > > Question: Might it be useful to allow a new kind of agentset that allows > repeats? It would be useful to me in this situation, but I know that the > idea violates longstanding assumptions about agentsets, and I suspect that > it would also require a lot of changes to the NetLogo source to implement. > > I thought I'd raise it as a question, anyway, to see what others think. > > -- > You received this message because you are subscribed to the Google Groups > "netlogo-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to netlogo-devel+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "netlogo-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to netlogo-devel+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.