Infinite Sets

Type expressions such as list of Character result in infinite sets of values. The standard types String and Entity are also infinite sets, while Integer and Number are practically infinite in size.

An infinite set, like any other value, can be assigned to a variables, passed as a parameter and returned from a function. The major limitation imposed on infinite sets, as opposed to finite sets, is that constructs that consider all members of infinite sets, such as

  {all s in String | hash(s) = x}
currently result in the empty set.

In principle, there is no reason why such expressions should not work properly (with the exception of paradoxical set formers), but this requires a somewhat more sophisticated implementation than the current one. Proper treatment of infinite set formers does not add sufficient power to the language to warrant this additional expenditure of effort at present.

Inifinite sets can be currently be used in set membership tests, subset checks, set intersections, set unions and Cartesian Products.


Herman Venter

This is Slim documentation as snarfed on 27 May 1999 by dB.