5 ms·
>And I think what that experience generally says is that it's a bit overkill. We can do better. Like Rust. Or OCaml perhaps ? They have taken a very pragmatic
by rrishi 2y ago
>And I think what that experience generally says is that it's a bit overkill. We can do better. Like Rust.
Or OCaml perhaps ? They have taken a very pragmatic approach to fp and allow mutations because thats the pragmatic choice sometimes.
- p_l 2y agoThe funniest thing is that to compile Rust, enabling various compiler features (like borrow checker etc), the code has to be transmuted into non-mutable one Single Static Assignment form :V
- nequo 2y agoAnd in the functional world, Lean 4 achieves language level support for local mutation, early return, etc. in the same way, by converting it into non-mutating code: https://dl.acm.org/doi/10.1145/3547640 https://dl.acm.org/doi/10.1145/3547640
- p_l 2y agoIn some ways, CPS as compilation target already went that way. Sure, ultimately the code mutates values in place, but the specific actions are modeled as pure operations