When I want to just write a quick script to test and idea, then I don't want to check that I've created my indices, array lengths etc as the correct type. I think for functions such as linspace not performing an automatic type conversion is a big mistake.
I thought that in previous Julia verions `int32(1.1)` would throw an error (maybe I misremember this). Now it just converts it to 1. I then agree that this is a bit dangerous. It should throw an error because 1.1 cannot be converted to int. This would resolve the issue --- but of course there may be others that I don't appreciate. Christoph On Saturday, 29 November 2014 13:22:05 UTC, Tamas Papp wrote: > > In general, I am more concerned about the following scenario: type A > makes sense, type B in general, does not, yet a subset of type B values > can be converted to A in a reasonable way, so an the implementation > performs this silently and everything seems fine. > > But at the same time, had I known that I left a type B value in there, I > would be concerned, eg because I am assuming that it is exact when it > isn't (integers vs floats) is problematic, or that conversion is > possible only for a subset of the domain, and other values are possible > but rare enough for my unit tests not to discover them, and will strike > me on the nose at some future point like a rake carelessly left in the > grass. > > Best, > > Tamas > > On Sat, Nov 29 2014, Stefan Karpinski <[email protected] <javascript:>> > wrote: > > > Our conversions throw errors when the value cannot be converted exactly > these days so it could be done pretty safely. But yes, this is just because > there's no applicable method of linspace. > > > > > >> On Nov 29, 2014, at 7:07 AM, Tamas Papp <[email protected] <javascript:>> > wrote: > >> > >> I think of this as a feature: using a float when only an integer makes > >> sense is most likely a bug in my code. Automatic conversion would mask > >> the problem. > >> > >> Best, > >> > >> Tamas > >> > >>> On Sat, Nov 29 2014, [email protected] <javascript:> wrote: > >>> > >>> One of the primary paradigms of Julia is the use of multiple dispatch, > that > >>> is choosing which method to call based on the types of the parameters > >>> provided. To quote from the manual > >>> http://docs.julialang.org/en/latest/manual/methods/#defining-methods > "No > >>> automatic casting or conversion of function arguments is ever > performed: > >>> all conversion in Julia is non-magical and completely explicit." > >>> > >>> Cheers > >>> Lex > >>> > >>>> On Saturday, November 29, 2014 8:17:26 PM UTC+10, Christoph Ortner > wrote: > >>>> > >>>> > >>>> In Julia 3.3 `linspace(0, 1, 10) ` works, but `linspace(0, 1, > 10.)` > >>>> does not. > >>>> > >>>> Why is the type not automatically converted to Int when possible? Is > this > >>>> intended or a bug? > >>>> > >>>> Christoph > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> >
