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
