> What about the rest of my comment? The expression problem?
Navigating around the expression problem is precisely what I am demonstrating. A language ought not [1] decide for me what I am allowed to express or not. I have a healthy disregard for linguistic purism [2].
Expressive power is the ability to say whatever I want to, whenever I want to. That is precisely what a para-consistent logic buys me - expressivity [3].
This is counter-intuitive to most people who have been taught to value consistency above all else (mathematicians, logicians). Non-contradiction is an axiom, not a law - it's a false authority. A man-made deity.
> it's nothing special
I didn't claim it's anything special - I merely claimed that I can say it. I did say it.
If "Haskell can say everything Ruby can" then go ahead and say it in Haskell. I am not saying it's impossible - but I a curious how you might navigate the Turing tarpit [4].
>It's a trick because your first "p" and your second "p" aren't the same "p"
First p and second p? You mean p@time(1) and p@time(2)?
Are 'you' not the same 'you' as the 'you' from 1 second ago, despite the ongoing changes in your body?
Ironically, that is the disconnect between pure functions and reality. Side-effects are the norm, not the exception.
>That getters/setters are an anti-pattern in OOP languages (just ask Alan Kay...)
That's an appeal to authority. Alan Kay doesn't get to make decisions for me. He gets to voice his opinion - I get to evaluate the pros and cons. The choice is always mine.
Like I said - In my problem-space lack of choice/control is an anti-pattern. Humans get the final say - not algorithms.
[1] https://en.wikipedia.org/wiki/Is%E2%80%93ought_problem
[2] https://en.wikipedia.org/wiki/Linguistic_prescription
[3] https://en.wikipedia.org/wiki/Paraconsistent_logic#Paraconsi...