Я пытаюсь создать тип «целочисленный mod p» в Julia. (Я уверен, что уже есть пакет для этого, это просто личных упражнений.)Ссылка на параметр типа как параметр функции в Julia
type Intp{p}
v::Int8
end
function add(a::Intp{p},b::Intp{p})
return Intp{p}((a.v + b.v) % p)
end
Я получаю сообщение об ошибке при определении надстройки, которая говорит р не определен. Как ссылаться на p изнутри?
. (Примечание: я мог бы сделать что-то вроде
type Intp
v::Int8
p
end
function add(a::Intp,b::Intp)
return Intp((a.v + b.v) % a.p,p)
end
, но это потребовало бы, что р храниться с каждым номером я чувствую, что это было бы неэффективно, и у меня есть свое мнение на обобщениях, где это было бы быть действительно неэффективным.Я предпочел бы, чтобы p просто указывался один раз для типа и ссылался на функции, которые воспринимают вещи такого типа как аргументы.)
Спасибо Стефана. Мне нравится ваш язык. –