[swift-evolution] Proposal: A standard library Fraction type

Adrian Kashivskyy adrian.kashivskyy at me.com
Mon Dec 7 04:53:04 CST 2015


(resending to mailing list)

I'm all for Fraction type as well, although I would prefer it to be called Rational for the following reasons:

- Although all rational numbers are technically fractions (with whole numbers having denominator of 1), it might mislead developers that it's applicable only to fractions of type p/q: q ≠ 1, q ≠ 0
- The name Rational is mathematically-correct


Pozdrawiam – Regards,
Adrian Kashivskyy

Wysłane z iPhone'a

Dnia 07.12.2015 o godz. 11:44 Davide De Franceschi via swift-evolution <swift-evolution at swift.org> napisał(a):

> While I agree that a Rational type, one that would preserve quotient and denominator info, would be very nice, I think that it's more fit for a Math framework.
> If we're just talking about a type that holds precise decimal info, I think making NSDecimal (planned to be renamed as Decimal in the future) usable is what we should do.
> 
>> On 7 Dec 2015, at 10:28, T.J. Usiyan via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> I'm all for a stdlib Rational Type. I've written one as well and would be glad not to have to include it as a dependency everywhere.
>> TJ
>> 
>>> On Mon, Dec 7, 2015 at 1:31 PM, Harlan Haskins via swift-evolution <swift-evolution at swift.org> wrote:
>>> If Swift 3 is going to focus on re-thinking the Numerics in the system, it might be worth considering adding a Fraction (or Rational) type to the standard library. This, coupled with an arbitrary-precision integer type, would be a great way to handle arbitrary-precision decimal arithmetic, and can alleviate almost all the pain points of floating-point math.
>>> 
>>> There exist now some really nice implementations of Fractions, but the ones I’ve seen haven’t been implemented fully generically.
>>> My favorite is this one: https://gist.github.com/JadenGeller/5e80ebf32442acc62e8e
>>> 
>>> I’d love to see some standard library support with rock-solid, fast implementations of all the common algorithms (GCD, LCD, LCM, reduction, etc) and good conformance to the builtin integer protocols. Maybe even FloatLiteralConvertible, too, with some logic for converting rational floats.
>>> 
>>> Thoughts?
>>> 
>>> - Harlan Haskins
>>> 
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>>  _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151207/3674a298/attachment.html>


More information about the swift-evolution mailing list