Newsgroups: comp.lang.scheme Path: utzoo!utgpu!news-server.csri.toronto.edu!torsqnt!snitor!doug From: doug@snitor.uucp (Doug Moen) Subject: Re: Logic does not Apply Message-ID: <1991Apr30.151352.1460@snitor.uucp> Organization: Siemens Nixdorf References: <9104300906.aa04392@mc.lcs.mit.edu> Date: Tue, 30 Apr 1991 15:13:52 GMT Lines: 26 >That the logical operators are derived expressions may well be the *legal* >answer as to why 'and' and 'or' cannot be used with 'apply'---my question >is though: is it a *reasonable* answer, with or without the RxRs Reports to >hand? Why shouldn't 'and' and 'or' be first class citizens of Scheme? > >It seems that logic does not apply! :-) > >Gordon Oulsnam stcs8004@iruccvax.ucc.hea.ie Good question. If Scheme were changed to use normal order evaluation, then `and' and `or' would indeed become first class procedures. Also, we could get rid of `delay' and `force', it would become easier to define lazy lists, etc. This increase in expressive power is not without cost: there is a performance penalty, and the new dialect `Lazy Scheme' would not be backward compatible with many existing Scheme programs. Also, the Algol-60 experience indicates that the interaction between call by name and side effects makes imperative programs harder to understand (think of Jensen's Device), and Scheme is, after all, an imperative language with functional tendencies, rather than the other way around. If we further change Scheme to make it both lazy *and* functional, then I think we would end up with a worthy and interesting research project. This new language would differ from the current crop of lazy functional languages in some interesting ways: it would have latent types, rather than strong typing, and it would would have Scheme syntax and macros. -- Doug Moen | doug@snitor.uucp | uunet!snitor!doug | doug.tor@sni.de (Europe)