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

# Plot locale

Plot also illustrates a common technique in the use of locales. Close J and restart it to get a clean slate. The `names` in the base locale is empty and there are just the two standard locales that are populated by the profile.ijs script.

       names 3	NB. verbs

       names 6	NB. locales
    base j    jcfg z

The load verb (defined in the `z` locale) loads the plot.ijs script into the `plot` locale.

       load 'plot'
       plot ? 5 $ 100
       names 3

       names 6
    base  j     jcfg  jplot z
       plot
    +----------+
    ¦plot_plot_¦
    +----------+

The verb `plot` is not defined in the base locale, but is defined in the `z` locale. When it is executed in the base locale the definition from the `z` locale is executed as if it were in the base locale. Entering the name `plot` displays its definition. The interesting thing about the definition of `plot` is that it executes the `plot` verb in the `plot` locale. So the `plot` in the `z` locale is a cover that works in all locales and has the result of executing `plot` in the `plot` locale.

This technique of loading a facility like the plot package into its own locale, and then defining cover verbs in the `z` locale so that plain name references invoke the desired verb in the facility locale is common. The definitions in the plot locale can be viewed as the private implementation of the facility and the names that are exposed by being defined in the `z` locale are the public or published interface.

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