These are the optional type-checking argument. If the last argument to a function definition (defun, procedure etc) is a string, then each character encodes the allowed type of the corresponding argument position. If there are too few type characters, the last is repeated for any subsequent arguments. Here's some of the common type letters (they are in the SKILL User Guide if memory serves me correctly): R : a ROD object S : either a string or a symbol U : a function object a : an array b : a ddUserType d : a database object e : an environment f : a floating point number g : generic - anything matches l : a list n : a number o : any user-defined (other) type p : an I/O port r : a defstruct s : a symbol t : a string u : a function object or name x : an integer y : a binary function So "ugl" means a function followed by anything followed by a list. "lx" means a list then an integer. There's also a typo in the first code - the foldr should be CCFfoldr. Obviously when Tom felt bad about not prefixing his functions and fixed them after the event ;-) Regards, Andrew
↧