Article View: comp.lang.functional
Article #3Re: Functional == Imperative
From: Thomas M. Breuel
Date: Tue, 27 Oct 1992 16:56
Date: Tue, 27 Oct 1992 16:56
33 lines
2280 bytes
2280 bytes
In article <BJORNL.92Oct26175238@asia.sics.se> bjornl@sics.se (Bj|rn Lisper) writes:
It follows that any "functional" interpreter of practical use must have
imperative features, since program development involves a test-edit-cycle
where attempted function definitions are redefined.
That's a view of program development that comes from the Lisp
tradition. I have always found it rather inconvenient (even with
semi-automatic support like COMPILE-CHANGED-DEFINITIONS-OF-BUFFER),
since it forces the programmer to manually maintain consistency
between his sources and the state of the interpreter, and since you
can never be certain whether some problem is due to a bug in your
sources or an inconsistency between your sources and your interpreter.
What I would prefer is an approach to interactive programming that is
more "declarative". By this I mean that I state to the interpreter
that a certain piece of text should describe its state. When I modify
the text, the state of the interpreter should change accordingly and
automatically.
The implementation of such a system might very well include some
imperative constructs ("System.Unsafe.redefine_top_level_function"),
but those constructs needn't (and shouldn't) be user-visible.
Thomas.
PS: Note, incidentally, that NJ/SML does not have "imperative top
level features", in the sense that it is not possible to redefine top
level bindings (you can only shadow them). That forces you to perform
some extra recompilation, but, in the absence of any smart mechanisms,
I find it to be preferable for ensuring better consistency between
sources and interpreter state than what your run-of-the-mill
CommonLisp system gives you.
Technical Details
Message-ID:
<TMB.92Oct27115652@arolla.idiap.ch>Path:
arc1-ca.pugleaf.net!sparky!uunet!snorkelwacker.mit.edu!ai-lab!life.ai.mit.edu!tmbReferences:
<1ccaamINNgbt@uwm.edu> <BJORNL.92Oct26175238@asia.sics.se>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!snorkelwacker.mit.edu!ai-lab!life.ai.mit.edu!tmb From: tmb@arolla.idiap.ch (Thomas M. Breuel) Newsgroups: comp.lang.functional Subject: Re: Functional == Imperative Message-ID: <TMB.92Oct27115652@arolla.idiap.ch> Date: 27 Oct 92 16:56:52 GMT References: <1ccaamINNgbt@uwm.edu> <BJORNL.92Oct26175238@asia.sics.se> Sender: news@ai.mit.edu Reply-To: tmb@idiap.ch Organization: IDIAP (Institut Dalle Molle d'Intelligence Artificielle Perceptive) Lines: 33 In-reply-to: bjornl@sics.se's message of 26 Oct 92 16:52:38 GMT