Subject:
|
Re: LDraw Animation - Why MPD?
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Mon, 29 Aug 2005 21:59:10 GMT
|
Viewed:
|
5616 times
|
| |
| |
In lugnet.cad, Timothy Gould wrote:
>
> Damien,
>
> I don't see the advantage in using OCaml over any other language. Particularly
> ones people are more familiar with. Could you outline any advantages is might
> have over, say, Perl (which also has inbuilt strings and memory management).
>
> Tim
(* off-topic discussion *)
Design and implementation are not as independant as i wish.
As part of the design requirements, i pointed moves should be functions and be
as composable as functions are. Practically that means the language must
support:
1. anonymous functions
2. closures
3. partial application
4. type inference (Milner's type system)
Java doesn't meet any of these requirements.
Perl, Python and Ruby may barely meet 2 or 3 of the requirements.
Scheme confortably meets 3 of the requirements.
The 4 requirements together leave only 3 language candidates:
1. OCaml
2. Haskell (the successor of Miranda)
3. SML (Standard ML)
OCaml is by far the most popular of them.
Why is a Milner's type system so much needed ?
Because of the heavy use of partial application.
Partial application means you can't check the number of applied arguments. Thus
code is very fragile: forgetting a function argument goes undetected, this leads
to code that is clean to read but nightmarish to debug. The solution found by
Robert Milner is a stronger typing system known as "Milner's type system".
damien
|
|
Message has 3 Replies: | | Re: LDraw Animation - Why MPD?
|
| (...) Hi Damien, The correct place for your response would be .off-topic.geek which is where I set the follow up to in the response post. I thought you were proposing to write a scripting language, but now I suspect you mean that people should use (...) (19 years ago, 29-Aug-05, to lugnet.off-topic.geek)
| | | Re: LDraw Animation - Why MPD?
|
| (...) I think you may need to explain you choices further. Python supports variable numbers of function arguments, as does Perl. In Python it is relatively easy to check the types of the arguments, and implement overloading and type checking inside (...) (19 years ago, 30-Aug-05, to lugnet.cad.dev)
|
Message is in Reply To:
61 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|