Path: utzoo!attcan!uunet!decwrl!asylum!osc!jgk From: jgk@osc.COM (Joe Keane) Newsgroups: comp.lang.functional Subject: Re: Implementing Error Values Summary: How to deal with exception strictness? Keywords: pointers, papers, paraphernalia, error values, implementation Message-ID: <4043@osc.COM> Date: 29 Nov 90 02:34:17 GMT References: <86438@lll-winken.LLNL.GOV> <1990Nov24.121432.29282@newcastle.ac.uk> Reply-To: jgk@osc.COM (Joe Keane) Organization: Versant Object Technology, Menlo Park, CA Lines: 23 In article <1990Nov24.121432.29282@newcastle.ac.uk> D.A.Harrison@newcastle.ac.uk (Dave Harrison) writes: >Although we mangaged to achieve the aim of preserving lazy semantics and >commutativity we had to restrict the power of the exception signalling, >propagation and handling mechanism so much that what we ended up with could >be expressed relatively straight forwardly in a lazy functional language such >as Miranda. In fact, as far as I remember, we actually wrote the Miranda >functions required. >I have doubts that an alternative approach would do any better, though >obviously I can't prove it. My belief is that it is more or less impossible >to produce an exception mechanism that significantly enhances the expressive >power of a language without losing "normal" lazy evaluation semantics. Yikes, i have to disagree with that last statement. I'd be interested in seeing a quick description of the major problems between exception handling and lazy evaluation. There is a question of whether functions should be `strict in exceptions'. Clearly if a function is strict in the value of some argument, it should also be strict in an exception in that argument. Otherwise, it could go either way. I'm convinced that you want both possibilities at different times, and therefore a good functional language should support both. Brought to you by Super Global Mega Corp .com