4 ms·
What happens if you reassign a variable below? Like: a = 1 println(a) a = 2 Does it show 1 or 2? Edit: tested it, it throws an error "Multiple definiti
by benhurmarcel 6y ago
What happens if you reassign a variable below? Like:
a = 1
println(a)
a = 2
Does it show 1 or 2?
Edit: tested it, it throws an error "Multiple definitions for a: Combine all definitions into a single reactive cell using a `begin ... end` block."
Not sure I like that way of working.
- 3JPLW 6y agoYou just update the `a=1` cell, changing it to `a=2`. That's the whole point. Every other cell that depends upon `a` will then automatically update.
- ziotom78 6y agoExactly. It requires a change in mindset wrt Jupyter, but it is totally worth it!
- vanderZwan 6y agoThink of it as working with immutable data, because that's essentially what it is. Which has all the pros and cons of that approach (in my opinion a lot more pros, but YMMV).
- benhurmarcel 6y agoYes, that's the best explanation in the end I think. Maybe I'm too used to reuse variables and that's a bad habit I should work on. For example most of my counters are called i.
- darsnack 6y agoIn a more complex example where you actually take a variable, do some operations to it, then reassign it, Pluto.jl encourages you to separate that into multiple cells. The reason is each cell marks a distinct node in the dependency graph. If you prefer to use cells, then the notebook can be smarter about what lines actually need to get re-run and what don't. A downside to using multiple cells is vertical spacing/visual noise. This is something that the package authors are currently thinking about addressing.