Hacker News new | past | comments | ask | show | jobs | submit login

Most imperative languages have an intermediate language in which local variables are immutable. However, purity is about more than immutability. For example, in C++

    x = doSomething(x) + 1
Can be written to not overwrite x

    int x2 = doSomething(x) + 1
This is equivalent in some ways to Haskell

    let x' = doSomething x + 1
However, I know that in Haskell, evaluating 'doSomething x' will not turn off the computer, display anything to the user, or launch missiles. I have no idea what evaluating 'doSomething(x)' does in C++. It may add things to caches, exit the program, etc.



Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: