Raul Miller wrote on Mon Sep 20 01:01:24 HKT 2010
> eraseLocale=: 3 : 0
> (y)=:1
>  erase y
> )

If I change =: to =. then the verb doesn't work.
Why is that?

If a name is repeated as in
   eraseLocale 'data data'
then 'data' is deleted in two locales.

A better but much uglier version
eraseLocale2=: 3 : 0
(y=.y#~q=.~:y=.(;: :: ])y)=:1
q#(^:_1)!._1 erase y
)


Note 'Why does local assignment change the behaviour?'
eraseLocaleX=: 3 : 0
(y)=.1
 erase y
)

   data_base_=.'base'
   data_z_=.'zzz'
   data
base
   eraseLocaleX 'data'
1
   data
base

Note 'the name is deleted in the other locale if it is repeated '
   data_base_=.'base'
   data_z_=.'zzz'

   eraseLocale 'data data'
1 1
   data
|value error: data


Note 'with eraseLocale2 repeated names marked with _1 in result'
   data_base_=.'base'
   data_z_=.'zzz'

   eraseLocale2 'data data'
1 _1
   data
zzz
   eraseLocale2 'data data'
1 _1
   data
zzz
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to