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