On 2/24/07, Tracy Harms <[EMAIL PROTECTED]> wrote:
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?
First off, I personally don't buy into the idea that "if an idea is useful it must be useful for everything." I don't think OO programming is always a good idea, I don't think functional programming is always a good idea, I don't think function level programming is always a good idea, I don't think that top down programming is always a good idea, I don't think that efficient programming is always a good idea, etc. etc. I can elaborate on these points, if needed. However, I think, implicit in your question, is the idea that for J to be sufficient for function-level programming, it must always be a good idea to use function-level programming in J. I disagree with this approach, especially when it's presented as an assumption rather than an explicitly reasoned position. (In some contexts it might be a valid approach, but not in all contexts.) Anyways, you can express arbitrary ideas tacitly in J. But as a general rule it's the less arbitrary ideas that are best expressed tacitly. Also: even explicitly defined verbs can be used tacitly, in J. Finally, from my point of view: one of the big advantages of tacit programming is conciseness. This can be a big help when performing experiments at the command line. As a simple example, I've got some expression and some data. I come up with an alternate expression and I want to test if they are equal. So, I do (expr -: expr2) data A few moments later, I expand expr2 and start playing with it. Or I might have made a mistake and they are not equivalent, in which case I might change -: to ;&$ or = and start isolating my problem. Etc. etc. That said, I don't have any good references to point you at, which elaborate on these points of view. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
