3 ms·
It is true: An isomorphic function admits an inverse function. However, what you are describing in the second paragraph is a generalization of functions: You a
by zmonx 9y ago
It is true: An isomorphic function admits an inverse function.
However, what you are describing in the second paragraph is a generalization of functions: You are now reasoning in terms of relations, where a single entity can be related to one or more others. Hence, a programming language that reasons in terms of relations (not functions) seems very appropriate for your use case. Logic programming is a such a natural generalization of functional programming.
For example, if you want to reason flexibly over dates and times, check out Prolog and its finite domain constraints.
Michael Hendricks has implemented a great library for this, called library(julian):
http://mndrix.github.io/julian/ http://mndrix.github.io/julian/
This library lets you reason in terms of ranges and other constraints to describe general relations between dates and times.