3 ms·
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 s
by throwaway487549 8y ago
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 abstractions and naming the resulting categories. I use "is" to describe what is going on, particularly in Haskell and Scala.
The whole abstract hierarchy I regard no more meaningful as hierarchy of chakras in crya yoga texts or similar sectarian pseudo-logical but disconnected from reality teachings.
While I really appreciate that you have mastered this abstract hierarchy and could in clear and precise language explain it (which is what a mathematician supposed to do)
I personally refuse to take statements like "any abstract datatype is a monad" seriously.
It is a plain type-error. You are trying to say that a triangle is a number. The correct and precise way is to say "could be viewed as", because you are literally superimpose one abstraction upon another, or view one through another, if you wish.
All these nested generalizations could be superimposed on programming, but it is fundamentally wrong to say that something in programming "is" one of these abstractions.
You are speaking like a mathematician, I am speaking like a non- (or rather anti-) Plato-Hegelian philosopher.
- mikekchar 8y agoHmmm... let me put it another way... When people are talking about monads, they are talking about what I was describing. :-) They use monads for what you are describing, but they also use them for many other things. The disconnect which created the conflict in the conversation was that you were using the term in a non-standard way. A person can use a word to mean anything they want, but they can't reasonably complain when other people don't understand what they are talking about. Again, in hopes that it will be helpful to you (though I realise I'm really pushing my luck) when I discussed the issue about needing to be right, I'm referring to this kind of reply. I will try to be as modest as I can by saying that "it takes one to know one" ;-) And even my reply here is probably one bridge too far. I should probably simply understand that you are fixed to your point of view and leave it at that. However, my goal in responding to your comments was to help you see the disconnect and to help you understand why people found your replies combative. There are definitely ways to portray your arguments such that you are in the right, but these strategies will not help you communicate with others. Western styles of communication often praise debate and the winning of arguments, but gloss over the loss of value when we look past each other. Anyway, like I said, I've almost certainly gone too far and I don't wish to antagonise you further. You are clearly a very smart person and I think you will eventually figure it out with or without my help. If anything I've said helps you get there faster, then I'll be extremely happy. If not, then I'll apologise for any stress I may have added. Edit: I would be remiss if I didn't point out that there are some ADTs which can not be monads. The exploration of that is extremely interesting. Since you clearly know Haskell, I recommend http://mightybyte.github.io/monad-challenges/ http://mightybyte.github.io/monad-challenges/ In challenge 1, the initial implementation of the Rand type can not be a monad. Why not? It's really interesting.