Hacker News new | ask | show | jobs
by rrishi 684 days 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.

1 comments

The 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
And 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

In 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