Я только начал искать Юлию. Меня интересует, как он выполняет множественную отправку, в частности, как он определяет тип для использования в множественной отправке.
Во введении к Типам manual говорится:
все значения в Julia являются истинными объектами, имеющими тип, принадлежащий одному полносвязному графу типов, все узлы которого одинаково первоклассны, как и типы
У меня вопрос: как связан граф типов?
Например, где бы уместилось Array
из Integer
? Это подтип Array
или подтип Integer
? Оба?
Как насчет Complex
чисел? Могу ли я иметь Array
(2x1) из Rational
и Duples
(2-кортежи) из Integers
обоих быть Complex
?
# This is my first Julia code ever. It is probably wrong.
abstract type Rational <: Number end
abstract type Integer <: Rational end
abstract type Complex <: Array{Integer, 2} end
abstract type Complex <: Tuple{Rational, Rational} end
(1, 2)::Complex * (1, 2)::Complex
В двух приведенных выше примерах я использую "code font"
для обозначения абстрактных типов.
Может быть, пример кода - неправильная концепция? Может, мне стоит вместо этого определить сложную функцию умножения?
Можете ли вы показать мне рисунок графа типов для встроенных типов?