  
  [1X5 [33X[0;0YRecords[133X[101X
  
  
  [1X5.1 [33X[0;0YFunctions for records[133X[101X
  
  [1X5.1-1 SetIfMissing[101X
  
  [29X[2XSetIfMissing[102X( [3Xrec[103X, [3Xname[103X, [3Xval[103X ) [32X function
  
  [33X[0;0YThis function has been transferred from package [5XAutoDoc[105X, where it was called
  [10XAUTODOC_WriteOnce[110X.  It writes into a record provided the position is not yet
  bound.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xr := rec( a := 1, b := 2 );;                                      [127X[104X
    [4X[25Xgap>[125X [27XSetIfMissing( r, "c", 3 );[127X[104X
    [4X[25Xgap>[125X [27Xnames := RecNames( r );;[127X[104X
    [4X[25Xgap>[125X [27XSet( names );[127X[104X
    [4X[28X[ "a", "b", "c" ][128X[104X
    [4X[25Xgap>[125X [27XSetIfMissing( r, "c", 4 );[127X[104X
    [4X[25Xgap>[125X [27Xr;[127X[104X
    [4X[28Xrec( a := 1, b := 2, c := 3 )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X5.1-2 AssignGlobals[101X
  
  [29X[2XAssignGlobals[102X( [3Xrec[103X ) [32X function
  
  [33X[0;0YThis function has been transferred from package [5XRCWA[105X.[133X
  
  [33X[0;0YIt  assigns  the  record components of [3Xrec[103X to global variables with the same
  names.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XAssignGlobals( r );[127X[104X
    [4X[28XThe following global variables have been assigned:[128X[104X
    [4X[28X[ "a", "b", "c" ][128X[104X
    [4X[25Xgap>[125X [27X[a,b,c];[127X[104X
    [4X[28X[ 1, 2, 3 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
