🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.functional
Article #3

Re: Functional == Imperative

#3
From: Thomas M. Breuel
Date: Tue, 27 Oct 1992 16:56
33 lines
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!tmb
References: <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