in reply to Re^3: GHC shuffle more efficient than Perl5.
in thread Why is the execution order of subexpressions undefined?

Monads are both pure and side-effectful. This isn't really a Functional Zen Koan (or hey, maybe it is), it's just that purity and side-effects are not really mutually exclusive.

Rather than sharing with you my second-hand understanding, I suggest you check out Simon Peyton-Jones' Awkward Squad paper. It has quotes that directly bear on this conversation such as:
"Call-by-need (or lazy) languages, such as Haskell, wear a hair shirt because their evaluation order is deliberately unspecified."
This paper may answer some of your earlier questions in greater detail.

In any case, I do think we should each use the language(s) we prefer. But I also think it's hard to know whether or not you prefer a language if you haven't tried it.

--Shae Erisson (lambafolk in the process of learning Perl from the inside out)
  • Comment on Re^4: GHC shuffle more efficient than Perl5.

Replies are listed 'Best First'.
Re^5: GHC shuffle more efficient than Perl5.
by BrowserUk (Patriarch) on Apr 23, 2005 at 04:37 UTC

    Thankyou for what from my breif scan so far, is another step on my elightenment. I will read it and all it leads to thoroughly as time permits.

    Update: It turns out that I already had the [file://localhost/C:/download/marktoberdorf/marktoberdorf.html|marktoberdorf] presentation in html form on machine, having read it some time ago when I first started looking at Haskell. Admittedly, at that point my understanding the concepts it discusses was even less than it is now, so I will re-read it over the next few days and see if anything changes in my reaction to it.

    I do have more to say on this subject. I am slowly putting that more together. When I asked the original question, I had no intentions of exposing where my thought patterns that led to the question were leading. In my attempts to counter the "C did it that way therefore it is the only way" argument for the status quo, I inadvertantly allowed bits and pieces of the thought-train that led me to question Perl's need for undefined execution order to leak out.

    That was, as this thread proves, a very big mistake. It has led to my attempting to initially explain the question, and then to defend the parts of the thinking that were exposed by that explaination.

    I'm a fool. I have this view of the world that everyone wants to explore new ideas and concepts, even the outlandish and crazy ones, even if they don't look like they might go anywhere, and ultimately don't. This is my approach to the world, as well as programming. It is not enough for me to read that X doesn't work. I need to understand both why it doesn't work, and what would have been the benefits of it if it did.

    It is very clear from this thread that: not everyone takes that view; and what a fool I was for believing enough might to allow me the priviledge of pursuing knowledge, that way, in public for this extnded thread to be fruitful.

    So, I have attempted to stop this thread, despite the obvious concequence of how a certain set of people would view that attempt. I have, through the inclusion of "late breaking developments", felt the need to renew my interaction. In part, so as not to be rude--which I abhor. In part, because those developments, including your posts, form interesting and fruitful extensions that I wish to pursue.

    But, until I have completed writing up the full details of though patterns, reading and ideas that led to my original question--incorporating stuff that has been months and years in gestation and is not easy to encapsulate--I would prefer to suspend this thread indefinitely. As I said in my reply to your previous post, I would welcome private contact, but trying to sustain a multi-threaded, all-comers, all-biases and all-dogmas open conversation, without mixing up the threads and directions in my replies proved to be beyond my ability (or desire) to do.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco.
    Rule 1 has a caveat! -- Who broke the cabal?