13
๐ช - 2024 DAY 11 SOLUTIONS -๐ช
(programming.dev)
An unofficial home for the advent of code community on programming.dev!
Advent of Code is an annual Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.
Solution Threads
M | T | W | T | F | S | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 |
Icon base by Lorc under CC BY 3.0 with modifications to add a gradient
console.log('Hello World')
Does the IORef go upwards the recursion tree? If you modify the IORef at some depth of 15, does the calling function also receive the update, is there also a Non-IO-Ref?
The IORef is like a mutable box you can stick things in, so
readIORef
returns whatever was last put in it (in this case usingmodifyIORef'
). "last" makes sense here because operations are sequenced thanks to the IO monad, so yes: values get carried back up the tree to the caller. There's alsoSTRef
for the ST monad, or I could have used the State monad which (kind of) encapsulates a single ref.