Chris Angelico writes: > On Sat, Jan 7, 2017 at 7:12 PM, Jussi Piitulainen wrote:
>> You switched to a simpler operator. Would Haskell notice that >> >> def minabs(x, y): return min(x, y, key = abs) >> >> has a meaningful zero? Surely it has its limits somewhere and then >> the programmer needs to supply the information. > > If the return value of abs is int(0..) then yeah, it could. (Or > whatever the notation is. That's Pike's limited-range-int type > syntax.) Maybe so. If Haskell abs has such types. (For integers, rationals, whatever numeric types Haskell has, which I've quite forgotten, or it may have even changed since I knew some Haskell. It's been a while.) I rewrite the question so that the answer cannot be deduced from just the types of the functions: def minabs(x, y): return min(x, y, key = lambda w: max(w, -w)) Surely max of two ints is an int. Maybe the Haskell compiler could specialize the type, but my question is, is it _guaranteed_ to do so, and how should the programmer know to rely on that? -- https://mail.python.org/mailman/listinfo/python-list