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?
>>>>
>>>>

Reply via email to