Comment by mawfig

3 years ago

To be clear, there's nothing wrong with impure programming languages. I use them every single day. My complaint is that V claims to be pure and is actually impure. To my knowledge, OCaml makes no claim to functional purity.

"ML-derived languages like OCaml are "mostly pure". They allow side-effects through things like references and arrays, but by and large most of the code you'll write will be pure functional because they encourage this thinking. Haskell, another functional language, is pure functional. OCaml is therefore more practical because writing impure functions is sometimes useful."

https://ocaml.org/docs/functional-programming

> My complaint is that V claims to be pure...

"V is not a purely functional language however." (from V documentation)

https://github.com/vlang/v/blob/master/doc/docs.md#pure-func...

  • "A pure function is one without any side-effects."

    https://ocaml.org/docs/functional-programming

    "V functions are pure by default, meaning that their return values are a function of their arguments only, and their evaluation has no side effects (besides I/O)."

    https://github.com/vlang/v/blob/master/doc/docs.md#pure-func...

    It sure sounds to me like V is trying to claim that functions can be pure while still performing I/O.

    • V's documentation is making it clear that it's not a purely functional language, so there should not be any such expectations. It also gives it's interpretation of what a pure function is, which other languages do as well, and there are various opinions about this.

      You appear to be unbothered by OCaml describing itself as "mostly pure", whatever such "marketing" truly means, but seem to take strong offense to V. Seems like "mostly pure", in either case, should be equally acceptable or generate equal outrage.

      2 replies →