I’m trying to solve aoc day 3 and my idea is to generate list of points
[“R2”,“U3”]
starting from the point {0,0} then 2 points Right and 3 points Up
the results needs to be:
[
[{1,0},{2,0}],
[{2,1},{2,2}{2,3}]
]
or as a drawing:
..u..
..u..
..u..
orr..
my implementation is that I map over the first list,
inside I pattern match on the direction and create a range with the length of vector then again I map over the range to generate the points.
The problem is that every nested map needs a different starting point (the last point from previous list) and I’m not really sure how to pass this variable in elixir - I’m thinking about a global variable but there is probably an easier solution
PS. I don’t want to ask in the aoc thread due to spoilers and I think the problem is more generic
Solution: the longer I think about it I need Enum.reduce instead of map and accumulate the new list in accumulator - this way I will have access to it in the next iteration
I’m unsure why a list of lists, but I’d probably just flatten it then loop over the points, filling in the characters in a map, then loop over the map to determine the extants while rendering out a list/binary of characters, then fill in the empty space with dots and print. I haven’t seen the AoC thing so if some knowledge was disposed on that then I don’t have it. ^.^;
If you don’t want to flatten the lists for some reason, just a nested reduce would work.
I don’t think that I need the whole grid for this particular solution.
I just need to generate list of all the points contained in the vectors.
That’s why I think the question is more generic and if someone has similar problem he won’t probably search in an aoc thread
The drawing is just for explaining what I want to achieve.
Solution: the longer I think about it I need Enum.reduce instead of map and accumulate the new list in accumulator - this way I will have access to it in the next iteration