You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
thinking through options for reasonably assigning 'more concrete' ie less partially evaluated live intermediate values for probe projectors.
to be clear i don't view this as an unalloyed good, i think that partial evaluations are sometimes what you want, i just think a more liberal evaluation path is probably also useful.
ideas:
(have a mode) where the user needs to click 'run' before probe update
don't run on each edit, only when certain criteria are met. e.g. gate on certain kinds of (incomplete or marked) edit states, or at least delay evaluation of certain kinds of edit states
keep around (some) previous evaluation states, and use these previous states to show live values according to some policy designed to balance latency and interpretability. e.g. probes show the last values when their expression was evaluated, even if it wasn't evaluated in the last run
more liberal 'error correcting parsing' hacks. this is the one i'm thinking about rn. This could mean: assigning multiholes (some approximation of) semicolon semantics, so eg l >< let x = 1 in x (ie what you get if you start to type a let on a line above an existing let) gets ran as l; let x = 1 in x => let x = 1 in x. Another option is that a >INFIX< b gets interpreted as a if b is in a stuck state, so e.g. let foo = 1 in 3 + 2 * fo| gets run as let foo = 1 in 3 + 2
The text was updated successfully, but these errors were encountered:
thinking through options for reasonably assigning 'more concrete' ie less partially evaluated live intermediate values for probe projectors.
to be clear i don't view this as an unalloyed good, i think that partial evaluations are sometimes what you want, i just think a more liberal evaluation path is probably also useful.
ideas:
l >< let x = 1 in x
(ie what you get if you start to type a let on a line above an existing let) gets ran asl; let x = 1 in x
=>let x = 1 in x
. Another option is thata >INFIX< b
gets interpreted asa
if b is in a stuck state, so e.g.let foo = 1 in 3 + 2 * fo|
gets run aslet foo = 1 in 3 + 2
The text was updated successfully, but these errors were encountered: