Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

KVALUE

Draft MDC Standard

8.2.21 KValue

KV[ALUE] postcond killarglist

The three argument forms of KValue are given the following names.

   a) glvn: Selective Kill.
b) (L lname): Exclusive Kill.
c) Empty argument list: Kill All.

KValue is defined using a subsidiary function K( V, val, subs ) where V is a glvn, val is 1, and subs is 0.

  1. Search for the name of V in the NAME-TABLE. If no such entry is found, the function is completed. Otherwise, extract the DATA-CELL pointer and proceed to step b.
  2. If V is unsubscripted, delete the tuple of degree 0 (if found). The function is completed.
  3. Otherwise, let N be the number of subscripts in V. Delete (if found) only the tuple of degree whose first N subscripts are the same as those in V. The function is completed.

Note that as a result of procedure K( V , 1, 0), $Data(V)=0 if V had no descendants before procedure K was applied, or $Data(V) = 10 if V had descendants before procedure K was applied, i.e., only the value of V is deleted.

The actions of the three forms KValue are then defined as:

   a) Selective Kill Apply procedure K( glvn ,1 ,0).
b) Exclusive Kill For all names, V, in the local variable NAME-TABLE except those in the argument list, apply procedure K( glvn , 1, 0). Note that the names in the argument list of an exclusive kill are restricted to unsubscripted locals.
c) Kill All For all names, V, in the local variable NAME-TABLE, apply procedure K(glvn ,1, 0). Note that Kill All applies procedure K to the local variable NAME-TABLE only.

If a variable N, a descendant of M, is killed, the killing of N affects the value of $Data(M) as follows: if N was not the only descendant of M, $Data(M) is unchanged; otherwise, if M has a defined value $Data(M) is changed from 11 to 1; if M does not have a defined value $Data(M) is changed from 10 to 0.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 13-Sep-2014, 18:14:13.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)