|
![](/i/fill.gif) |
>> I also note, with some interest, what looks suspiciously like Haskell
>> syntax, in a letter typed 42 years ago. Obviously it's not after
>> Haskell, but rather whatever mathematical formalism Haskell borrowed the
>> notation from. Still, interesting none the less...)
>
> What syntax specifically?
case [i] of (A1, A2 ... An)
It's almost valid Haskell as it stands. The next line down has
(B1 -> E1, B2 -> E2 ... Bn -> En)
which is also strikingly similar.
> I think (but I was not yet part of the scene then) that people were
> looking for good notation. They knew that programming and mathematics
> had a lot in common. Yet things that were obvious in von Neumann
> machines (assignments and control flow statements in particular) did not
> have a direct counterpart in maths.
I think it's more that mathematics is capable of expressing
transformations far more complex than what the hardware can actually
implement. Computer hardware is, more or less, restricted to mutating
individual hardware registers one at a time. Which, if you think about
it, is a very slow way to make large-scale changes. Mathematics has a
lot of language for describing complex transformations, and is much less
focused on how to (say) multiply two matrices one floating-point value
at a time.
> A problem that is not entirely solved even today. Haskell and other
> languages try to deal with it by restriction to a a paradigm that is
> closer to math than the imperative way of thinking. The downside of that
> is that problems that are easier solved in another paradigm become more
> complicated. Perhaps there are also people working on extending maths to
> include time-dependent behaviour.
I think that "maths" has "included time-dependent behaviour" since at
least when Sir Isaac Newton formulated his Laws of Motion. :-P
> Fact is that we as humans solve problems using a lot of techniques.
> Choosing whatever seems appropriate at the time. That is why I think a
> good programmer needs to be familiar with at least three or four
> different languages.
Well, I'd say I've tried more than most...
Post a reply to this message
|
![](/i/fill.gif) |