The Wikipedia article says that a function-level
program is variable-free, so in that way it is like
a tacit definition, which makes no explicit mention
of its arguments.  A tacit defn is also limited
to what you can build using the primitive adverbs 
and conjunctions (and of course the essential fork)
that are provided.

You may wish to consult the Hui/Iverson/McDonnell
paper "Tacit Definition" from APL91. See:
http://www.jsoftware.com/jwiki/Essays/Bibliography
You may also wish to compare Backus' Turing Lecture
(August 1978) and Iverson's seminal "Operators and 
Functions" research report (1978-04-26).  The
research report is probably hard to find now,
but as I recall the contents are substantially
the same as the "Operators" paper in TOPLAS 1979.
Again, see the bibliography in the J Wiki.

As an exercise in tacit vs. explicit, you can
try writing boxed array display explicitly, and 
compare your result to
http://www.jsoftware.com/jwiki/Essays/Boxed_Array_Display

Pepe Quintana has previously stated in this forum
that he uses tacit definition exclusively in his 
work.  I am not as fanatical in this regard.



----- Original Message -----
From: Tracy Harms <[EMAIL PROTECTED]>
Date: Saturday, February 24, 2007 7:56 pm
Subject: [Jprogramming] function-level programming (was: tacit vs explicit 
definition)

> Thank you, Raul and Roger, for your replies on the
> roles of explict and tacit techniques of verb
> definition.
> 
> As I studied this topic tonight it occurred to me that
> tacit programming seems to be necessary to (but
> perhaps not sufficient for) function-level
> programming.  The topic of tacit definition seems to
> open naturally to the question:  When is
> function-level programming a better way to use J, and
> what discipline needs to be maintained to accomplish
> it?
> 
> The distinction between functional programming and
> function-level programming was something I first
> encountered in the Wikipedia article on J, which was
> where I first became aware of J.  (I linked there
> while reading on the topic of functional programming.)
> The distinction was one I had never heard drawn
> before, and my interest in J was greatly piqued by the
> indication that it better fits Backus' prescription
> than do "standard" functional languages.  I didn't
> quite follow the distinction, and some confusion
> remains for me today, but it does seem to me that my
> recent attention to J has made the topic more
> tractable.
> 
> To date I'm relying on the Wikipedia article,
> Function-level programming:
> http://en.wikipedia.org/wiki/Function-level_programming
> 
> NB. That article names J as a "canonical
> function-level programming language".
> 
> Roger, you listed four considerations in deciding
> between tacit and explicit definition.  It looks to me
> that the second and fourth of these are relevant to a
> function-level approach.  ("Tacit is more amenable to
> formal manipulations" and "Tacit encourages building
> up a more complex function from components.")
> 
> More information on the relationship between J and
> function-level programming would be welcome.  (Perhaps
> I've missed references to applicable papers?)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to