hoplon 2020-03-13

a coworker of mine and i are just a little doubtful that it's smart enough to figure out where the cells are 100% of the time it works totally fine in simple cases like (cell= [one-cell another-cell]) or (cell= (:something some-cell)), but as the expressions get more and more complex, we think trusting it is a bit of a leap of faith

the big thing for me, though, is that it isn't immediately obvious to the human reading the code where the cells are

it feels a bit too magic to me sometimes

i've never seen a case where a formula couldn't figure out which things are cells, because it just calls cell? on them

but when you want to do some certain types of things it can be difficult for a human

especially if you need to do something like (formulet [x (cell 100)] (when @some-other-cell x))

like if you want to manipulate cells as cells inside a formula, and not just the values contained in the cells

like in the above example the formula wouldn't update when some-other-cell updates

ah! yeah, i guess that would be an example of something you can do with formula-of and formulet, but not cell=, because cell= eagerly treats cells as their values

it is pretty uncommon to need to do that, though

yeah, there are ways, but it's more quirky

like (cell= (when @~some-other-cell x))

the ~ guy hides some-other-cell from the cell= code walker

but it's probably overkill, just use formulet or whatever in that case for sure

Yeah personally I've found cell= to be really reliable for what it does. (and yeah formula-of and fomulet handle the cases it's not perfect for)

i can't personally think of an example of cell= failing to recognize cells, especially if you know how to use ~

the ~ form has some quirks that can be surprising

in other words annoying lol

I way more often get tripped up by the templating nuances in hoplon

conditional children, another landmine

ah, yes, that templating

i feel that part was clearer back when hlisp was a thing, since the only elements you used were markup or special ones

like the templating model made sense if you knew mustache or whatever. now with everything intermingled, more conceptual overhead

ahem, "power" 😬