Re:Linear types can change the world (1990) [pdf]
by macawfish on Tuesday January 09, 2018 @11:38AM
(#16107398)
Is this about organizing side-effects in a way that compilers can optimize?
[ Parent
| on HN ]
Re:Linear types can change the world (1990) [pdf]
by jw- on Tuesday January 09, 2018 @01:30PM
(#16108473)
I think you could say that. Another way to look at it would be to say it's about organising your code in such a way that side-effects don't really matter. For instance, if only I have access to a reference, then I'm free to update it without risk of disrupting anyone else's world view. You could say that there is no side-effect from my update because no-one can observe the change.
This is nice for functional programming because it gives you the performance of mutable state and destructive update, but in a way that is 'pure', or side-effect free, from the outside.
Re:Linear types can change the world (1990) [pdf]
by bsaul on Tuesday January 09, 2018 @01:17PM
(#16108344)
I asked myself a bit of a related question. Is this theory related to https://en.m.wikipedia.org/wiki/Static_single_assignment_for... ?
Re:Linear types can change the world (1990) [pdf]
by jw- on Tuesday January 09, 2018 @01:35PM
(#16108510)
I think SSA is related to CPS, but I'm not sure of the correspondence with Linearity. I think the key difference (but I'm not sure), is that SSA only asserts that a variable is assigned once, but might be consumed multiple times. Linearity says that things must be consumed exactly once. For instance, I think:
y <- x + 1
z <- x + 2
is a legal SSA expression, but it is not a legal linear expression because x appears twice.
(Corrections welcome)