It is all about choosing secondary roads, exactly the way Robert M. Pirsig emphasized. I (foreigner) rode 18,000 km on an Enfield bike all over Indian Himalayas. Someday I will bootstrap this…
Intuition is, so to speak, an attempt to match against evolved brain structures which reflects some constraints of the environment in which it has been evolved. Babies could read faces. This is exactly what I am talking…
I would love to have type-clases a-la Haskell (implicits with parametric polymorphism, which is dead-simple and well understood) and universal pattern matching everywhere, but this is, of course, just a dream. I would…
Oh, applying a poorly understood abstract concepts to poorly understood vastly complex and still intractable stochastic process, which is what real genetics is. (daily reminder - each gamete is unique perturbation of…
Yes, it was really good read, thank you. I hope I could write as clearly. Look, however, at the use of "is" in my comment and yours. You are applying "is" to some abstract, nonexistent categories, categorizing…
Promises and futures in Scala standard library and in Akka have nothing to do with Monads.
May be. I think a Monad is an abstraction which generalizes a transition, similar to a step of logical deduction. It Haskell a similar concept is actually used to compose what they call actions, originally used to…
> there is no other way to talk about values that have not been evaluated yet. There is a way, and it is known since at least R5RS. https://www.gnu.org/software/mit-scheme/documentation/mit-sc...
To be a Monad you have to implement at least 2 functions >>=, and return, which must follow so called Monadic laws (of proper composition - associativity, etc). flatMap is just a function. One more time - Futures are…
> JS is a strongly typed Strongly typed implies no implicit coersions at runtime. Python is strongly typed. JS or PHP are weakly typed.
And this is meaningful only in the context of a lazy language. In the context of strict, statically typed language an algebraic Option type is good-enough.
This isomorphism has no meaning. It is also isomorphic to logical OR, if you wish. Shall we wrap OR into a Monad?
> Promises do that are simpler and do not form a monad? Promise is just an Abstract Data Type. It does not have to be an instance of a Monad. https://docs.racket-lang.org/referenc/Delayed_Evaluation.htm...…
That means they do meaningless unnecessary wrapping too. It is even more ridiculous for a weak-typed language. The only point of a Monad is that in a lazy language it desugars into an implicit nested functions, which…
Option type is just an algebraic data type. datatype 'a option = None | Some of 'a
This is exactly what is called "unnecessary wrapping". There is no meaning in wrapping anything into a Monad in a strict language, where the order of evaluation is well-defined, narcissistic snowflakery aside. In other…
It is all about choosing secondary roads, exactly the way Robert M. Pirsig emphasized. I (foreigner) rode 18,000 km on an Enfield bike all over Indian Himalayas. Someday I will bootstrap this…
Intuition is, so to speak, an attempt to match against evolved brain structures which reflects some constraints of the environment in which it has been evolved. Babies could read faces. This is exactly what I am talking…
I would love to have type-clases a-la Haskell (implicits with parametric polymorphism, which is dead-simple and well understood) and universal pattern matching everywhere, but this is, of course, just a dream. I would…
Oh, applying a poorly understood abstract concepts to poorly understood vastly complex and still intractable stochastic process, which is what real genetics is. (daily reminder - each gamete is unique perturbation of…
Yes, it was really good read, thank you. I hope I could write as clearly. Look, however, at the use of "is" in my comment and yours. You are applying "is" to some abstract, nonexistent categories, categorizing…
Promises and futures in Scala standard library and in Akka have nothing to do with Monads.
May be. I think a Monad is an abstraction which generalizes a transition, similar to a step of logical deduction. It Haskell a similar concept is actually used to compose what they call actions, originally used to…
> there is no other way to talk about values that have not been evaluated yet. There is a way, and it is known since at least R5RS. https://www.gnu.org/software/mit-scheme/documentation/mit-sc...
To be a Monad you have to implement at least 2 functions >>=, and return, which must follow so called Monadic laws (of proper composition - associativity, etc). flatMap is just a function. One more time - Futures are…
> JS is a strongly typed Strongly typed implies no implicit coersions at runtime. Python is strongly typed. JS or PHP are weakly typed.
And this is meaningful only in the context of a lazy language. In the context of strict, statically typed language an algebraic Option type is good-enough.
This isomorphism has no meaning. It is also isomorphic to logical OR, if you wish. Shall we wrap OR into a Monad?
> Promises do that are simpler and do not form a monad? Promise is just an Abstract Data Type. It does not have to be an instance of a Monad. https://docs.racket-lang.org/referenc/Delayed_Evaluation.htm...…
That means they do meaningless unnecessary wrapping too. It is even more ridiculous for a weak-typed language. The only point of a Monad is that in a lazy language it desugars into an implicit nested functions, which…
Option type is just an algebraic data type. datatype 'a option = None | Some of 'a
This is exactly what is called "unnecessary wrapping". There is no meaning in wrapping anything into a Monad in a strict language, where the order of evaluation is well-defined, narcissistic snowflakery aside. In other…