[Haskell-cafe] naturally, length :: a -> Int
Olaf Klinke
olf at aatal-apotheke.de
Sun Mar 14 12:34:04 UTC 2021
On Fri, 2021-03-05 at 20:03 -0600, Zemyla wrote:
> You're looking for Ratio Natural.
>
> On Wed, Mar 3, 2021, 09:20 Olaf Klinke <olf at aatal-apotheke.de> wrote:
>
> > While we're at it: Can there be a Fractional type permitting only
> > positive numbers, as the positive real numbers are closed under
> > division?
> >
How stupid of me not to think of Ratio Natural. I should have phrased
my question more precisely: Are there types that by construction (not
only morally) permit only certain subsets of real numbers with
reasonably efficient arithmetical operations?
A naive way to represent rationals between 0 and 1 would be as
newtype Part = Part !Natural !Natural with semantics
\(Part a b) -> a % (a+b)
Then (*) is easy to implement. \x -> 1-x is O(1) but arithmetic mean is
more complicated. I have a proof-of-concept. If there is general
interest in Rationals between 0 and 1 I could turn it into a small
package, provided no other implementation exists.
Olaf
More information about the Haskell-Cafe
mailing list