Search Top Index
HELP NEWASSOC Steven Hardy Jan 1978 newassoc(LIST) -> PROP This procedure can be used to create associative 'memories'. For example: vars age = newassoc([[bert 26] [fred 15]]); The value of -age- is now a procedure which finds the value "associated" with its single argument, for example: age("bert") => ** 26 age("fred") => ** 15 age("john") => ** false We can alter the value associated with a given word, thus: 27 -> age("bert"); age("bert") => ** 27 age("bert") + 1 -> age("bert"); define birthday(person); age(person) + 1 -> age(person); enddefine; age("bert") => ** 28 birthday("bert"); age("bert") => ** 29 We can also create new entries: 35 -> age("john"); so that now, age("john") => ** 35 -newassoc- makes use of the procedure -newproperty- which creates hashed association tables. See HELP *NEWPROPERTY and *PROPERTIES. The property returned by -newassoc- uses "==" to find the value associated with its argument, see HELP *NEWPROPERTY for more details. There is a related procedure -assoc- which creates association lists rather than properties. It uses "=" rather than the stricter "==" when comparing arguments, but is a lot more inefficient for large sets of associations. It will nearly always be more efficient to use a property table. See REF *ASSOC for details. See REF *PROPS for full information on properties. --- C.all/help/newassoc --- Copyright University of Sussex 1992. All rights reserved. ----------