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 please ?*
> >     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 
>

Reply via email to