Size: a a a

Язык программирования Julia / Julia programming language

2020 April 03

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Андрей Оськин
По крайней мере я почти 100% уверен, что supertype(Complex{Int}) при вычислении превращается в supertype(Complex)
так supertype(Complex{Int}) == supertype(Complex), т.к. оба значения - Number
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Ок.
В любом случае supertype работает как заявлено - он возвращает тот абстрактный тип, который был указан при объявлении.

Вставка в параметризованные типы промежуточного параметризованного типа без указания параметров видимо избыточна с точки зрения разработчиков.
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Скорее всего именно так
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
А вообще что такое Complex
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Есть разве такое
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Или это alias для Complex{T} where T
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Ну, в REPL такую штуку набрать можно и она вроде даже ошибки не выдаёт
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Т.е., если не возможно придумать ситуацию, когда бы это могло потребоваться, то они правы
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
julia> Complex <: Complex{T} where T
true

julia> Complex >: Complex{T} where T
false
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Нет, это что-то другое
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Ну там T не любой еще
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
julia> typeof(Complex)
UnionAll
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
А только из Real
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Это вообще какая-то странная конструкция, если её типом является UnionAll
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
julia> typeof(Vector)
UnionAll

julia> typeof(Type)
UnionAll
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
и Complex из той же серии
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Real точно ни при чем

julia> abstract type Foo{T} end

julia> typeof(Foo)
UnionAll

julia> typeof(Foo{Int})
DataType

julia> Foo <: Foo{Int}
false

julia> Foo >: Foo{Int}
true
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
В общем, это всё по кругу.

Для каких-то целей такая сущность как параметрический тип без указания типа существует, но в иерархию он не встроен.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
А, ну даже понятно для каких. Чтобы ограничения на типы было просто выставлять при объявлении функций.

function f(x::Vector)
источник
2020 April 04

AL

Anatoly Levenchuk in Язык программирования Julia / Julia programming language
источник