Comment by pkal

Comment by pkal 9 hours ago

4 replies

I recently realized that "pure functional" has two meanings, one is no side-effects (functional programmers, especially of languages like Haskell use it this way) and the other is that it doesn't have imperative fragments (the jump ISWIM to SASL dropped the non-functional parts inherited from ALGOL 60). A question seems to be whether you want to view sequencing as syntax sugar for lambda expressions or not?

nh2 8 hours ago

Who uses the second meaning?

In my experience, "purely functional" always means "you can express pure functions on the type level" (thus guaranteeing that it is referentially transparent and has no side effects) -- see https://en.wikipedia.org/wiki/Pure_function

NeutralForest 8 hours ago

I'm working with Python and I'm sympathetic to the problem so I'd be curious if you have examples of what Python issues are fixed with OCaml.

  • rienbdj 7 hours ago

    A few ways in which Python is not really functional:

    The scoping rules of Python are not lexical

    Lambdas in Python are not multiline

    Recursion is not a practical way to write code due to stack overflows

    Monkey patching

nesarkvechnep 6 hours ago

Pure functional doesn't mean no side effects but controlled side effects.