David Green wrote:

On 2/23/06, Jonathan Lang wrote:(Another possibility would be to return a list of every possible result when in list context, with the result that you'd get in scalar context being element zero of the list. This even has its uses wrt sqrt(Num), providing a two-element list of the positive and negative roots, in that order. This option would apply to sqrt, exp, log, and the trig functions.)## Advertising

I was thinking functions like sqrt would return a disjunction... Isuppose it's probably still most useful to return a single scalar bydefault, so there would be some pragma via which you could choose to getlists or to get junctions when there's more than one possible result.(Perhaps if you <use Complex>, the default might be to return junctionsor lists on the grounds that you're trying to be more mathematical?)

`For the complex trig functions the result set is infinite with no`

`obvious order to return the list in even lazily that provides anything`

`useful. The results are all of the form A + (B + 2*pi*N)i where N can`

`be any integer. It is worth much more effort to just return a`

`consistent principle value and getting the branch cuts and the handling`

`of signed zero correct then to worry about trying to return multiple`

`values in these cases. For a through discussion see either the Ada or`

`Common Lisp reference manuals.`

Mark Biggar -- [EMAIL PROTECTED] [EMAIL PROTECTED]