SwiftMath
SwiftMath copied to clipboard
RNG parameter intuitiveness
It's a bit confusing that Int.random(0, 100) can return 100 as well, ranges usually exclude the second value. Lot more confusing that Int.random(range: 0..<1) returns 0...1. And inclusive range (...) is not supported at all.
(lldb) p Int.random(range: 0..<1)
(Int) $R24 = 0
(lldb) p Int.random(range: 0..<1)
(Int) $R25 = 1
Also Double.random() has a default of 0.0...100.0 while usually 0..<1 would be expected. Would you like me to submit a PR to adjust these?
Well, while I agree with Int.random(0, 100) returning 0...99 may be conventional in a lot of frameworks (including C# ones etc) I would still would like to see it returning 0...100, because it seems more rational to me.
Int.random(range: 0..<1) returns 0...1
I would treat this as a library bug
Double.random() has a default of 0.0...100.0 while usually 0..<1 would be expected
Yes, this is also a bad pitfall.