[Jprogramming] Bug/Inconsistency among namelist verbs from z locale

Mark Niemiec mniemiec at gmail.com
Tue Sep 27 06:31:56 HKT 2011


Unfortunately, 4!:1 always works on the currently visible namespace, and
there is no option to explicitly make it look at a specific locale (and
ignore local names). However, we can work around this by using a monad
(whose local parameter obscures global y) and an adverb (whose local
parameter obscures globals m, u, and x). By excluding these ambiguous
names, and then combining both lists, we can get a list of global names
unpolluted by any local names.

The monadic half of nl can be replaced by the following. Unfortunately,
this won't work for the dyadic half, since it could not distinguish between
local x and global x, as x is defined locally in both the verb and the adverb.

nl_z_ =: 3 : 0
	if. 0=#y do. y=.0 1 2 3 end.
	if. 0={.0{.,y do.
		~.((;:'y')-.~4!:1 y),(;:'m u x')-.~y 1 :'4!:1 m'
	else.
		cutopen_z_ y
	end.
)

-- Mark D. Niemiec <mniemiec at gmail.com>


More information about the Programming mailing list