Table of Contents
Miranda wiki
Understanding the code
There is a half-hour video on codesync in which David explains the steps by which he converted his 25-year-old code base from K&R C to ANSI C and from purely 32-bit to being "32/64-bit ambivalent" as well as giving an overview of how it works, some of the problems that the garbage collector faces and his work in progress to rewrite most of the interpreter in Miranda to improve its simplicity, speed and robustness.
Why use Miranda?
In the above podcast, Professor Turner says:
Why would anyone want to use Miranda, assuming I do this (#15) rather than Haskell? Well, it's a much smaller language with a less steep learning curve, it has a simpler type system because there are no type classes. Type classes are incredibly powerful and very clever but they greatly increase the complexity of the type system and I think there is a value in having something rather similar to Haskell but without any type classes, which is basically what Miranda is. It also has much simpler arithmetic because it has a single type
numwhich includes unbounded-size integers and double-precision floating point with free conversion between them as needed, which is very convenient for beginners. So I think Miranda has some life in it as a language that people could use to teach themselves functional programming in a style very, very similar to Haskell on something that's easier to learn and then switch to Haskell later when they want a compiled language.
My coprogrammer from the '80s writes:
I remember miranda fondly, Haskell always seemed a bit clunky, and I’m still struggling to understand monads.