Raul's suggested test is neat! OK, it doesn't work for explicit definitions, but it does for tacit, as long as $: is not used. I like to use tacit definitions rather than explicit because it make me think more. I programmed in other languages so much that explicit definitions are still easier for me, so I enjoy the challenge of writing tacit definitions. The assumption that an undefined name in a tacit definition is a verb allows one to order a series of tacit definitions used to make a final tacit definition ordered in a more understandable sequence.
I have always felt, for no good reason, that using f. to make the final definition contain only primitives results in more efficient execution. And, as in Raul's test, it results in verifying that all the names used are properly defined. Since the the tacit definitions used to build the final definition are no longer needed for execution, they can be local names so they go away and don't clutter after the containing script loads. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
