6/1/2026 at 1:10:36 PM
Why is `pure` a keyword that needs to be added, with impure being the default? This discourages programmers from marking functions as pure. I like how Nim does it, with `func` declaring a function (pure) and `proc` declaring a procedure (impure).by xigoi
6/1/2026 at 2:12:22 PM
I also really like the distinction between a function and procedure. The function is a pure mathematical function. The procedure is a series of instructions.by adamddev1
6/1/2026 at 3:13:30 PM
Roc defaults functions to being pure, and functions that can run side effects are inferred to have a different type by the compiler based on usage. By convention, their names should also end in `!` (e.g. `transform` for the name of a pure function and `transform!` if it does side effects), and the compiler warns you if you don't follow that convention.https://github.com/roc-lang/roc/blob/b2503210da6b58a4ce1254d...
by rtfeldman
6/1/2026 at 1:36:50 PM
I would also recommend this default.We want languages that encourage good design.
If your goal is - like Crystal - to be as pain free of a migration from Python to Blorp, this shouldn't really impact it, since the compiler can and should be able to auto-fix this.
by onlyrealcuzzo
6/1/2026 at 3:19:53 PM
> Why is `pure` a keyword that needs to be added, with impure being the default?Marketing.
Instead of reading the code littered with "impure" keywords, you look at the beautiful code marked as "pure".
by miroljub
6/1/2026 at 6:34:58 PM
The LLM is just going to leave out the pure by default.by adastra22