Using optional parameters in handlers

An example of optional parameters inside handlers using lists or records. From the AppleScript Users list

OS version: OS X

processArgs({1, 2, 3})
--> 30
processRecord({a:1, b:2, c:3})
--> {3,5}

on processArgs(args)
   set x to 5
   repeat with arg in args
     set x to x * arg
   end repeat
end processArgs

on processRecord(hash)
   set len to count hash as list
   set x to 5
   try
     set x to x + (d of hash)
   end try
   return {len, x}
end processRecord