new functions?

Ivers, Doug E Doug_Ivers at
Mon Dec 30 20:00:38 EST 2002

the logical expression (there is a group "myG") 
has an equivalent function:  exists(group "myG") 
which I prefer 

it would be nice to have an equivalent for (n is an integer) 
thus:  isInteger(n) 
and optionally:  isInteger(n,0,4) 
which returns true if n is 0, 1, 2, 3, or 4

here's another:  isArray(a) 
and optionally:  isArray(a,8) 
which returns true if a is an array with 8 elements 

these are simple enough to write and i'll code my own for now and add them to my library, but are such functions being added to transcript over time?  How is the decision made regarding whether a new function belongs in the language, or should be left to the programmer?

if such elementary functions are not going to be added to the language, seems that us programmers should be sharing them amongst ourselves.

Here are some handlers i'll share right now:
function forceBoolean T
  return (T = true)
end forceBoolean
on forceBoolean @T
  if (T <> true) then put false into T
end forceBoolean

the above are useful when processing optional arguments of a function

function forceInteger N lowestN highestN
  -- lowestN <= highestN is not verified herein
  if (N is not a number) then put 0 into N
  if (lowestN is a number and N < lowestN) then return lowestN
  if (highestN is a number and N > highestN) then return highestN
  return trunc(N)
end forceInteger
on forceInteger @N lowestN highestN
  put forceInteger(N,lowestN,highestN) into N
end forceInteger
on testForceInteger
  answer "forceInteger(1.234) = "& forceInteger(1.234)
  answer "forceInteger("&quote&"int"&quote&") = "& forceInteger("int")
  answer "forceInteger(-4.4,2,5) = "& forceInteger(-4.4,2,5)
  answer "forceInteger(4.4,-5,-1) = "& forceInteger(4.4,-5,-1)
  put 1.234 into int
  forceInteger int
  answer "forceInteger 1.234 = "& int
  put -4.4 into int
  forceInteger int,2
   answer "forceInteger -4.4,2 = "& int 
end testForceInteger

(note that args 2 and 3 are optional)

Why don't I see "@" in the Transcript Dictionary? 

-- D 
doug_ivers at 

More information about the Use-livecode mailing list