I think that's a great idea for an extension. On Fri Feb 06 2015 at 1:53:52 PM Marshall <[email protected]> wrote:
> On Friday, February 6, 2015 at 12:39:59 PM UTC-6, Jason Bertsche wrote: >> >> Does it complicate the NetLogo language, though, if agentset primitives >> knew how to deal with "agentbags". Maybe there's something I'm not seeing. >> >> >> Bags and sets are two things that you can use very similarly, but they >> can lead to very different behavior in a model. If someone is writing code >> that deals with bags and sets, there will be cognitive overhead to keeping >> track of which variables hold which of the structures (i.e. agentsets or >> agentbags), and knowing the difference between the two structures, and >> knowing when to use which structure. Not saying that it's the end of the >> world, but I think added cognitive overhead is something that's important >> to take into consideration—especially in a language like NetLogo that aims >> to have a low barrier to entry. >> >> Regarding debugging, if you're in a situation where you think you have an >> agentset but truly have an agentbag (or vice versa), figuring out why your >> model is misbehaving might not be so easy. In fact, you might never >> realize at all! I think the reason that this isn't currently a problem in >> NetLogo is because all of the NetLogo collections—all two of them, plus >> those provided by extensions—use a very noticeably different set of >> primitives. There's some overlap in the vocabularies of lists and >> agentsets, but not a whole lot. >> > > Yeah, I see what you're saying. Those are really good points. > > So I suppose that NetLogo is trying to satisfy two poles of a continuum: > the entry level people, and experienced modelers. And one of the beautiful > things about it is that it does both well for a broad range of kinds of > models, thus allowing for an easy learning path from one end to the other. > For its target modeling domains, nothing does better at this tradeoff. > Maybe the "high" end is pushing on NetLogo to develop more flexibility, > recently. (I'm not really at the high end--more like the middle.) If > NetLogo became difficult to learn, then someone would have to invent a new > modeling tool that was easier. > > Putting aside all questions about ease of implementation, complexity of > code, etc., hypothetically, maybe a good strategy would be to introduce > agentbags only through an extension, with replacements for agentset > commands, such as bag:ask, which don't work with agentsets That way no > one will use bags except when they really want them, and the bag: prefix > will make the difference obvious. If you want to apply these commands to > an agentset, you would have to convert it to a bag with a command like > bag:turtle-bag. It would be nice if turtle-set would convert turtlebags > to turtlesets. And if there were an equality predicate that could tell > you that an agentset and an agentbag had exactly the same members. Not > saying this is easy.... > > -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
