>>  <<  Ndx  Usr  Pri  Phr  Dic  Rel  Voc  !:  wd  Help  Primer

z locale

The z locale is the parent locale of all other locales.

If a name is not found in the current locale, and there is a definition for it in the z locale, then that definition is used as if it were in the current locale.

The z locale is for common utilities that you want to be available everywhere. From the z locale, they are available for execution in any locale as if they were in that locale, yet there is only a single copy, and the names in the z locale don't clutter up the names in the other locales.

The profile.ijs that runs when you start J defines many standard utilities in the z locale. You have used both the erase and the names verbs which are defined in the z locale. You can tell this by the following:

   names 3	NB. verbs in the base locale
...

The above does not list names as a name, yet you are able to execute it. This is because when it is not found in the base locale, its definition from the z locale is used as if it were in fact defined in the base locale.

   names_z_ 3	NB. verbs in z locale
...

The result is too long to list here. The verb names has a dyadic definition that takes a left argument which indicates the first letter of names to return.

    'n' names_z_ 3
nameclass namelist names nc nl

names is defined in the z locale and that is the definition that is executed.


>>  <<  Ndx  Usr  Pri  Phr  Dic  Rel  Voc  !:  wd  Help  Primer