It's not array equality that's the issue here. Arrays with the same elements are '==' (but not '==='). If you manually test pushing the same array to a Set you'll see it works fine.
Jan, what happened is that your 'santa' function modifies and returns the same array that was passed in instead of creating a new one. So the only array that ever gets created is the first 'start = [0 0]' and it just gets continually modified, both in the santa function and in the set. Switching to a tuple works because you are forced to create a new tuple to change one of the elements. On Tuesday, December 15, 2015 at 3:32:40 AM UTC-5, Tomas Lycken wrote: > > Probably because the arrays will not be equal even if their contents are > equal (this is true of most mutable types in Julia). > > If you try representing a position as a tuple `(0,0)` instead of as an > array `[0,0]`, you'll find that it works as expected. > > // T > > On Tuesday, December 15, 2015 at 8:28:36 AM UTC+1, Jan Strube wrote: >> >> That's not a problem at all. In fact that's the very reason why I'm using >> a Set in the first place. >> >> My question is: Why is the number of entries in the set different when I >> add Arrays vs. adding ASCIIStrings? >> >> >> On Monday, December 14, 2015 at 10:57:57 PM UTC-8, [email protected] >> wrote: >>> >>> I think your problem is that Sets cannot contain duplicate entries, so >>> if Santa ever passes the same point twice it won't be added. >>> >>> Cheers >>> Lex >>> >>> On Tuesday, December 15, 2015 at 4:23:19 PM UTC+10, Jan Strube wrote: >>>> >>>> I'm trying to learn a bit more Julia by solving the puzzles over on >>>> http://adventofcode.com >>>> On day 3, the problem is to follow a number of directions and figure >>>> out how many new places you end up. >>>> http://adventofcode.com/day/3 >>>> >>>> I thought I can solve this simply by defining a set of [x y] positions, >>>> each time adding a new grid position to the set, so I'd end up with a Set{ >>>> Array{Int64,2}} of the right length. >>>> However, this doesn't work as expected. I get the wrong number (it's >>>> too low). >>>> >>>> Wrapping each grid position into a string() call, however, gives me the >>>> right answer. >>>> The explanation is a bit convoluted. To avoid spoilers I've put the >>>> code up at https://gist.github.com/jstrube/3d54e15f7d051b72032b >>>> >>>> I don't quite understand this. Is this expected? >>>> >>>>
