Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news4.ner.bbnplanet.net!news.ner.bbnplanet.net!news.mathworks.com!newsfeed.internetmci.com!in2.uu.net!news.biu.ac.il!discus.technion.ac.il!news!qobi
From: qobi@ee.technion.ac.il (Jeffrey Mark Siskind)
Subject: Re: Common Lisp is dead (was: Re: Why garbage collection?)
Reply-To: Qobi@EE.Technion.AC.IL
Organization: Technion, Israel Institute of Technology
Date: Sun, 18 Feb 1996 11:10:16 GMT
Message-ID: <QOBI.96Feb18091017@ee.technion.ac.il>
In-Reply-To: jpc1@doc.ic.ac.uk's message of 15 Feb 1996 19:13:50 -0000
X-Nntp-Posting-Host: ee.technion.ac.il
References: <rvillDL4v3n.I8r@netcom.com> <s08wx6akhlt.fsf@lox.ICSI.Berkeley.EDU>
	<4eqh8l$c9f@news2.ios.com> <s08g2cu4zdg.fsf@lox.icsi.berkeley.edu>
	<4fjhu5$o2s@nz12.rz.uni-karlsruhe.de> <vrotneyDMn59o.526@netcom.com>
	<4g00le$g1o@oak77.doc.ic.ac.uk>
Sender: news@discus.technion.ac.il (News system)
Lines: 27

In article <4g00le$g1o@oak77.doc.ic.ac.uk> jpc1@doc.ic.ac.uk (Justin Cormack) writes:

   Languages based on this include Miranda and Haskell, which allow polymorphic
   functions (that is functions that can take any of several types, see
   example below) to be defined without losing the benefits of
   static, compile time type checking, but without any run time
   overheads, and with reusable higher order functions. This is fairly recent
   work (the earliest implementations were around 1985) so came too late for
   Lisp.

See Stalin, a implementation of R4RS Scheme, available free from my home
page. It does exactly this kind of type inference (and a lot more).

   In the long term the fact that this can be done is probably the
   best argument against Lisp and also the unduly restrictive static typing
   of C/Pascal-like languages which as you rightly say makes reusability
   very difficult.

Quite to the contrary. The fact that this can be done is probably the best
argument for languages like Lisp that omit type declarations and allow the
compiler to infer them, and against languages that require the user to
manually provide type declarations.

    Jeff (home page http://www.cs.toronto.edu/~qobi)
--

    Jeff (home page http://www.cs.toronto.edu/~qobi)
