From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1CqZoN-00052L-Ab for qemu-devel@nongnu.org; Mon, 17 Jan 2005 11:33:03 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1CqZoF-0004wl-0T for qemu-devel@nongnu.org; Mon, 17 Jan 2005 11:32:55 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CqZoE-0004up-RY for qemu-devel@nongnu.org; Mon, 17 Jan 2005 11:32:54 -0500 Received: from [131.111.8.138] (helo=ppsw-8.csi.cam.ac.uk) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CqZVC-0004rm-BH for qemu-devel@nongnu.org; Mon, 17 Jan 2005 11:13:14 -0500 From: "Mark A. Williamson" Subject: Re: OCAML, was CMinusMins, was Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host Date: Mon, 17 Jan 2005 16:13:02 +0000 References: <20041215145903.GA29957@100tka.net> <20050117155307.GA6103@jbrown.mylinuxbox.org> In-Reply-To: <20050117155307.GA6103@jbrown.mylinuxbox.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200501171613.03031.mark.williamson@cl.cam.ac.uk> Sender: maw48@hermes.cam.ac.uk Reply-To: mark.williamson@cl.cam.ac.uk, qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Apologies for going slightly OT. I don't want to start a fight, so I'll just give a brief explanation. > What is Objective CAML? OCAML is a dialect of ML (Meta Language), the other main dialect being Standard ML (SML). The ML family is a functional language with eager evaluation semantics (function arguments are evaluated before calling a function). There is a strong emphasis on immutable data structures although all ML dialects that I know of include traditional features (pointers, assignment...) as well. ML languages use a very powerful type-checker with a "type inference" algorithm (it figures out what types things should have) and powerful support for functions that return other functions or take others as arguments (nicer than function pointers). OCAML adds Object orientation features to the ML dialect CAML. There are various pros and cons to functional languages and I don't want to start a fight over the relative merits of different paradigms. There's lots more information on the web, Google, Foldoc and Wikipedia will probably all provide useful information. HTH, Mark