With respect to the theological view of the question; this is always painful to me.— I am bewildered.— I had no intention to write atheistically. But I own that I cannot see, as plainly as others do, & as I should wish to do, evidence of design & beneficence on all sides of us. There seems to me too much misery in the Haskell world. I cannot persuade myself that a beneficent & omnipotent God would have designedly created the Haskell with recursive data structure yet leave the maximal size of tuples to arbitrary implementation details, have a restrictive typing system that would not include dependent types, or force the hand of the programmer to use the bang operator to manage memory manually to avoid consequences of laziness.
Not believing this, I see no necessity in the belief that the Haskell was expressly designed.
I would like to add that just like in our universe, in Haskell entropy only ever increases and never goes down.
I.E., add more functionality to your program and the complexity will go up. This is true for all programming languages of course, but in my limited experience larger Haskell programs seem to become exponentially more complex.
> Haskell beginners often use lists instead of arrays. You can’t do random access in a linked list, but only access the first element and then the rest of the list. The real world also doesn’t allow you random access, you are limited by the speed of light and have to go from one location to the next.<p>You don't need arrays for random access though. Haskell trees give you access to 2^n leaves within depth n, which also exceeds physical limitations like the speed of light.
This makes me believe simulation theory even more tbh. Quantum mechanics exist to fuse operations, altogether making simulating our universe more computationally inexpensive.
Let's face facts here: God just fell asleep on the keyboard, and by a staggering coincidence, or perhaps a weird shape of the head, the first 4 letters he typed were P, E, R, L.<p>He's still sleeping.
>The real world also doesn’t allow you random access, you are limited by the speed of light and have to go from one location to the next.<p>"Random access" doesn't mean that accessing an item always takes the same time regardless of the size of the collection, it means that, if the size of the collection doesn't change, access times are uniform independently of which particular item is accessed.<p>For example, one might conceive of a storage device shaped like a sphere the size of the solar system, where an item is read by shining a laser onto the surface of the sphere and measuring how the laser is scattered on its way back. Such a device would be random access, even though it's impossible to grow the collection, and even though a collection with twice the radius and four times the storage size would have four times the latency.
This kind of thinking happens when you are a strong expert in a field, but your frontal lobes stop receiving enough blood. When this happens, something simple as lazy evaluation becomes the key to the universe.
Actually She is written in Haskell too, but that's ok, due to lazy evaluation (of Haskell and of God) mutually recursive definitions pose no problem.
I want to ask God how to make my stack build process faster.. even turning off the optimization flag it still takes quite some time on my 2.6 GHz 6-Core Intel Core i7.. (or is it because I'm on a Mac? Does it build faster on Linux?)
> Consider the wave-particle duality in quantum mechanics. Every particle behaves as a wave, as long as you haven’t interacted with it. Thanks to Haskell’s lazy evaluation values are also only evaluated once they are accessed (interacted with particles), and stay unevaluated thunks (waves) in the meantime.<p>Lazy evaluation is a beautiful thing, and in many ways, it is the solution self-reference.<p>Hofstadter in "I am a strange loop" and Gödel Escher Bach talks about this, well, he talks about many things, but he also talks about how Gödel's numbers can map to proofs that are self-referential, and relates that to humans, how out of very basic building-blocks, if enough representational power exists, self-reference and therefore consciousness exists.<p>He posits that humans, while self-referential, don't fall into infinite <i>strange</i> loops because they can assign the abstraction of "self" onto an "object" and evaluate only as needed. In essence, the "self" is lazily evaluated.
Dumb, but it's fun hearing it from the other side.<p>If you ever make a "Haskell is bad because it doesn't use state but the real world uses state" argument, this is what you sound like.
This view on wave-particle duality and the quantum measurement is a (very) leaky abstraction. It is a process, governed by decoherence - for a nice overview, see e.g. "Decoherence, einselection, and the quantum origins of the classical" by Zurek (<a href="https://arxiv.org/abs/quant-ph/0105127" rel="nofollow noreferrer">https://arxiv.org/abs/quant-ph/0105127</a>).
or maybe God is intuitionist<p>btw reminded me of the "quantum-mechanical" monad
<a href="http://blog.sigfpe.com/2007/03/monads-vector-spaces-and-quantum.html" rel="nofollow noreferrer">http://blog.sigfpe.com/2007/03/monads-vector-spaces-and-quan...</a>
I guess god doesn't care about the order that things execute, pauses from garbage collection or making everything from granular linked lists even though they are obsolete in current software.
>He seems to enjoy writing Haskell<p>This article gives no evidence of this. None of the concepts that the article lists out are Haskell exclusive. Thunks and linked list can be made in C too.