On Tuesday, March 22, 2016 at 8:43:50 PM UTC+5:30, Mauro wrote: > > > Hi Mauro , > > > > Can you show me any example ? > > I am a beginner in Julia. It would of great help for me. > > In Julia the number types are defined here: > > https://github.com/JuliaLang/julia/blob/fdbcdf78bf0106e609a8d83b9e896d2d11bae594/base/boot.jl#L156 > > > So there are the abstract types: > > abstract Number > abstract Real <: Number > abstract AbstractFloat <: Real > abstract Integer <: Real > abstract Signed <: Integer > abstract Unsigned <: Integer > > and then there are concrete subtypes. For example a few integer types: > > bitstype 8 Bool <: Integer > bitstype 64 Int64 <: Signed > bitstype 64 UInt64 <: Unsigned > > > > On Tuesday, March 22, 2016 at 8:01:47 PM UTC+5:30, Mauro wrote: > > > > You can only inherit from abstract types. Also, first defining > > > > type number > > ... > > end > > > > and then > > > > abstract number > > > > is not possible. It cannot be both abstract and concrete. (Also note > > that types are by convention Captialized). > > > > So build your hierarchy only with abstract types and make concrete > types > > of some of the abstract ones. > ^ Can you explain this point a bit ?
> > > > On Tue, 2016-03-22 at 15:26, kunal singh <[email protected]> wrote: > > > So basically there is a type called Basic defined as follows > > > > > > type Basic > > > ptr::Ptr{Void} > > > function Basic() > > > z = new(C_NULL) > > > ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), > &z) > > > finalizer(z, basic_free) > > > return z > > > end > > > end > > > > > > Now I want to create a hierarchy: integer(not Integer)< number(not > > Number) < > > > Basic > > > > > > But in Julia, we cannot inherit from concrete type So what should > I Do?? > > > > > > Here's My approach > > > > > > abstract Basic > > > > > > type number <: Basic > > > ptr::Ptr{Void} > > > function number() > > > z = new(C_NULL) > > > ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), > &z) > > > finalizer(z, basic_free) > > > return z > > > end > > > end > > > > > > abstract number > > > > > > type integer <: number > > > ptr::Ptr{Void} > > > function integer() > > > z = new(C_NULL) > > > ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), > &z) > > > finalizer(z, basic_free) > > > return z > > > end > > > end > > > > > > > > > Please tell me if I am wrong ? > > > Need help from >
