Вопросы по теме 'path-dependent-type'

Предоставление типа, зависящего от пути, исходящего из одноэлементного типа
Я пытаюсь заставить Scala найти правильный тип для зависимого от пути типа, исходящего из одноэлементного типа. Во-первых, вот контейнер типа для примера и один экземпляр: trait Container { type X def get(): X } val container = new...
177 просмотров

Как избежать ужасного приведения типов, работающих с типами, зависящими от пути?
Я новичок в Scala и не знаю, почему я должен выполнять (неинтуитивное для меня) приведение типов, связанное с типами, зависящими от пути, в следующем коде. (Мне не нравятся геттеры, сеттеры или нули, они здесь для разделения операций и устранения...
374 просмотров

Типы, зависящие от пути scala, и доказательства уровня типа
В настоящее время я пытаюсь определить модель языка синхронизированного потока данных в scala. Поток виртуально представляет собой бесконечную последовательность значений некоторого типа T, изменяемую некоторыми часами C (часы показывают, в какие...
571 просмотров

Переопределение членов, имеющих типы, зависящие от пути, в Scala. Требуется пояснение с точки зрения спецификации языка Scala.
Рассмотрим следующий простой эксперимент на Scala: scala> trait A {class C;val c:C} defined trait A scala> object O1 extends A {val c=new C} defined object O1 scala> object O2 extends A {val c=O1.c} <console>:9: error: overriding...
100 просмотров

Как абстрактно расширить трейт, зависящий от пути: переопределить трейт?
Как указать для определенного включающего объекта трейт, зависящий от пути, что этот трейт должен поддерживать дополнительную функцию? override trait ? Как вы относитесь к исходной черте, которую расширяет подчерта? В частности, я хочу...
226 просмотров

Зависимый тип с обратной ссылкой (Scala)
Я играю с зависимыми (от пути) типами в Scala и наткнулся на следующий сценарий, для которого я не могу найти хорошего решения. Предположим, я хочу иметь некоторую иерархию зависимых типов, и я хочу, чтобы каждый из них имел обратную ссылку на свой...
109 просмотров

Как в scala указать компилятору реализовать эквивалентность двух абстрактных типов?
У меня есть простой случай для проверки возможности вывода типа scala: trait Super1[S] { final type Out = this.type final val out: Out = this } trait Super2[S] extends Super1[S] { final type SS = S } case...
105 просмотров