PACK

package utilities

a package is a 2-column matrix of:  name, value
that can be used to store nouns, or otherwise
associate names and values.

A "name" is any character vector. pack and pdef work
only when the names are proper J names.

definitions for nouns only:
  pk=.       pack nl         create package from namelist
  nl=.  [nl] pdef pk         define [namelist from] package

definitions for any names:
  text=. pk1  pcompare pk2   compare packages
  val=.  name pget pk        get value of name in package
  pk=.   new  pset old       merge new and old packages
  pk=.   nl   pex pk         remove namelist from package
  pk=.   nl   psel pk        select namelist from package

Defined items
NameClassDescription
packVerbpackage namelist
pdefVerbpackage define
pcompareVerbcompare two packages
pexVerbremove namelist from package
pgetVerbreturn value of name in package
pselVerbselect namelist from package
psetVerbmerge new into old

pack................ (v) package namelist

form:  pack 'one two three'
       pack 'one';'two';'three'

pdef................ (v) package define

form: [nl] pdef pk         if nl not given, define all

pcompare............ (v) compare two packages

form: pk1 pcompare pk2

pex................. (v) remove namelist from package

form: namelist pex pk  

pget................ (v) return value of name in package

form: name pget pk        - return value of name in package

psel................ (v) select namelist from package

form: namelist psel pk  

pset................ (v) merge new into old

form: new pset old
result has values in new, plus any values in old that
were not replaced in new

system\main\pack.ijsRelease: 4.02/1998-11-13/12:26