Originally posted by Jon`C:
I'm not sure what that would mean. The output of every function is disjoint subsets of the input set, defined using some predicate and a goal quantity (= cardinality, if the input has unit quantities). It's like a way of converting an input set into a bunch of disjoint subsets, such that the desired predicates and cardinalities of those disjoint sets are satisfied.
The function that maps a set to its cardinality is actually a measure on *some collections of sets that satisfy certain axioms. Those axioms being it's closed under set union and set minus (intersection follows as a theorem from these two). Usually we desire countable unions, which is fine on a collection of finite sets because countable unions of finite sets is just a finite union**. So in a sense your language already meets the axioms. You could define other measures, in a sense giving more "weight" to some set. We just established that it does have an additive set function, thus we have a measure of your sets, the "cardinality-measure" for lack of a better term. Which means there's probably others.
Originally posted by Jon`C:
I'm talking about programming language theory, but only to the extent that it is a programming language, and it's usefulness is theoretical. I wouldn't pretend to be competent at the actual theory of programming language design.
I more or less designed this language on a lark (and for a bunch of undergrad credit). I'm not sure I really "get" the language anymore, assuming I ever did. Probably running out of steam explaining it though.
I more or less designed this language on a lark (and for a bunch of undergrad credit). I'm not sure I really "get" the language anymore, assuming I ever did. Probably running out of steam explaining it though.
Ah, gotcha. I guess this stuff is for the academics.
*as long as infinity = infinity for all infinity
**as long as the union of all sets in the collection is finite