Ah yes.expressiveness -
The quality of effectively conveying an algorithm to a CPU or similar computing hardware.
From a clarity and syntax point of view there may be a difference, but from the computer's point of view both expressions express the same thing and in this sense are exactly equally expressive.
There is that aspect of "expressiveness", who, or what, are we making the expression to? Who is the audience?
I can express my thoughts in English, that means nothing to someone who only speaks Chinese. For them the quality of my ability to express a thought is very poor.
I can express my algorithms in Haskell but that has zero expressiveness to a machine with no Haskell compiler.
I can express my programs in x86 assembler and it means nothing to my Raspberry Pi.
And so on...
That's definition of expressiveness is important, after all we do want our programs to run. Pseudo code will not do.
However, I don't think you actually believe your own definition, or perhaps might like to revise it some how. The most effective way to "convey an algorithm to a CPU" is as a binary executable. A binary blob dropped into memory, a Linux elf, a Windows .exe. I'm guessing you don't want to present your challenge solution in binary! I have had to assemble by hand on paper and create hexadecimal to load to the machine, I think that is a bit to low level too.
I conclude you mean something a bit different. It's clear though that you mean to prioritize expression to the machine more than expression to other programmers.
I would disagree there. Haskell, the language, knows nothing of GMP.Haskell is fast with big numbers because GMP is fast.
The Glasgow Haskell compiler I am using certainly uses GMP under the hood. But that is an implementation detail. I'm sure it could use some other big maths library. I guessing one could write the entire Haskell compiler in Haskell including big integer support. I have no idea if that is possible or if anyone has done it or if it would perform well. It just seems like it should be so. Perhaps a Haskell guru could chip in here.
Yeah, perhaps. The algorithms we have been playing with here were new to me when we started. I guess that put's me in the perfect position to evaluate language expressiveness hereTo see whether Haskell is useful for efficiently expressing new algorithms, one needs a new algorithm to express.