88 lines
1.8 KiB
Markdown
88 lines
1.8 KiB
Markdown
::: {#nb1 .cell execution_count=1}
|
|
``` {.julia .cell-code}
|
|
function show_subtype_tree(T, i=0)
|
|
println(" "^i, T)
|
|
for Ts ∈ subtypes(T)
|
|
show_subtype_tree(Ts, i+1)
|
|
end
|
|
end
|
|
|
|
show_subtype_tree(Number)
|
|
```
|
|
|
|
::: {.cell-output .cell-output-stdout}
|
|
```
|
|
Number
|
|
Complex
|
|
Real
|
|
AbstractFloat
|
|
BigFloat
|
|
Float16
|
|
Float32
|
|
Float64
|
|
AbstractIrrational
|
|
Irrational
|
|
Integer
|
|
Bool
|
|
Signed
|
|
BigInt
|
|
Int128
|
|
Int16
|
|
Int32
|
|
Int64
|
|
Int8
|
|
Unsigned
|
|
UInt128
|
|
UInt16
|
|
UInt32
|
|
UInt64
|
|
UInt8
|
|
Rational
|
|
```
|
|
:::
|
|
:::
|
|
|
|
|
|
::: {#nb2 .cell execution_count=2}
|
|
``` {.julia .cell-code}
|
|
using AbstractTrees
|
|
|
|
AbstractTrees.children(x::Type) = subtypes(x)
|
|
print_tree(Number)
|
|
```
|
|
|
|
::: {.cell-output .cell-output-stdout}
|
|
```
|
|
Number
|
|
├─ Complex
|
|
└─ Real
|
|
├─ AbstractFloat
|
|
│ ├─ BigFloat
|
|
│ ├─ Float16
|
|
│ ├─ Float32
|
|
│ └─ Float64
|
|
├─ AbstractIrrational
|
|
│ └─ Irrational
|
|
├─ Integer
|
|
│ ├─ Bool
|
|
│ ├─ Signed
|
|
│ │ ├─ BigInt
|
|
│ │ ├─ Int128
|
|
│ │ ├─ Int16
|
|
│ │ ├─ Int32
|
|
│ │ ├─ Int64
|
|
│ │ └─ Int8
|
|
│ └─ Unsigned
|
|
│ ├─ UInt128
|
|
│ ├─ UInt16
|
|
│ ├─ UInt32
|
|
│ ├─ UInt64
|
|
│ └─ UInt8
|
|
└─ Rational
|
|
```
|
|
:::
|
|
:::
|
|
|
|
|
|
|