I don't think Julia is UN-reasonable. I just thought think it could look
cleaner and more consistent than it does today.

Cheers,
Daniel.

On 8 March 2016 at 14:40, Tim Holy <[email protected]> wrote:

> julia> Int(3.0)
> 3
>
> julia> Int(3.2)
> ERROR: InexactError()
>  in call at essentials.jl:56
>
> That's pretty reasonable, no?
>
> --Tim
>
> On Tuesday, March 08, 2016 04:12:34 AM Daniel Carrera wrote:
> > Hello,
> >
> > In Julia 0.4 the "int(foo)" syntax was deprecated:
> >
> > julia> int(3.2)
> > WARNING: int(x::AbstractFloat) is deprecated, use round(Int,x) instead.
> > ...
> > 3
> >
> > I am happy with `round(Int,x)` but recently I noticed that Python
> > consistently uses the name of the a type as the name of the function to
> > convert values into that type. Compare:
> >
> > Python:
> >
> > list("hello") # Creates a `list` type.
> > str(10) # Creates a `str` type.
> > int(3.2) # Creates an `int` type.
> > set("hello") # Creates a `set` type.
> >
> >
> > Julia:
> >
> > collect("hello") # Creates an Array
> > string(10) # Creates an ASCIIString
> > round(Int,3.2) # Creates an Int
> > Set("hello") # Creates a Set.
> >
> > I think the Python guys are onto something. It is easy to remember that
> the
> > name of the function is the name of the type. Do you think there is any
> > merit in Julia copying that idea? In Julia the equivalent might be
> > something like this:
> >
> > Array("hello")
> > String(10)
> > Int(3.2)
> > Set("hello")
> >
> > Currently only the last one works. The others give errors, and String is
> in
> > fact deprecated. We could try the lower case versions:
> >
> > array("hello")
> > string(10)
> > int(3.2)
> > set("hello")
> >
> > Now string(10) works, but int(3.2) is deprecated. The others don't exist
> > but could exist:
> >
> > set(x) = Set(x)
> > array(x) = collect(x)
> >
> > I think it would be nice for Julia add this extra bit of consistency in
> the
> > language. What do you think?
> >
> > Cheers,
> > Daniel.
>
>

Reply via email to