News for hackers. Stuff that matters.
Re:Python types have an expectations problem by evrimoztamur on Monday January 29, 2024 @11:27AM (#39178213)
That could be a Union[float, list[float]]. Union types are very common!

In fact, I think TypeScript will, for your given example, with the 'else' clause accurately identify the type of x to be a float if it's a union like the one I wrote down above.

Re:Python types have an expectations problem by taeric on Monday January 29, 2024 @11:36AM (#39178342)
Sorta? The function does return a union type, in isolation. At most callsites, you would know which of the two you are getting. This is much closer to generic invocation, if I remember the name correctly. Was very common in a lot of older dynamic languages.

In fact, in a lot of languages, you can't tell this is a float, statically. It would work with whatever type was passed in that supports multiplication. And return the appropriate type. Right?