Вопросы по теме 'singleton-type'
Невозможно доказать, что одноэлементные типы являются одноэлементными типами при создании экземпляра класса типов.
Предположим, у меня есть класс типов, который доказывает, что все типы в совместном произведении Shapeless являются одноэлементными типами:
import shapeless._
trait AllSingletons[A, C <: Coproduct] {
def values: List[A]
}
object...
3587 просмотров
schedule
09.09.2022
Использование идиоматического логического равенства (синглетоны)
Я хочу создать структуру данных для хранения элементов, помеченных на уровне типа, с помощью Symbol. Этот:
data Store e (ss :: [Symbol]) where
Nil :: Store e '[]
Cons :: e s -> Store e ss -> Store e (s ': ss)
data HasElem (a :: k) (as...
286 просмотров
schedule
04.03.2024
Scala: обобщать одноэлементные типы?
В Scala значения и объекты имеют отдельные типы, назначенные им индивидуально. Итак, мы можем иметь:
val x = 1
type X = x.type
val y = 2
type Y = y.type
Могу ли я написать метод, который принимает только x в качестве аргумента?
Я...
106 просмотров
schedule
25.11.2022
Понимание реального кода шаблона торта с ссылками на себя и это
Недавно я узнал о шаблоне торта и различиях между использованием self => и self:T => (см. здесь ). отмечено различие между этими техническими особенностями и реальным кодом Scala. продолжают создавать мне проблемы. Например, см....
47 просмотров
schedule
02.02.2023
Как (небезопасно) отразить карту как ограничение?
Мне нужен класс типов, представляющий принадлежность к овеществленному Data.Map.Map . Итак, что-то вроде:
class Reifies s (Map Text v) => IsMember (x :: Symbol) s where
value :: Proxy s -> Proxy x -> v
И затем я хотел бы...
125 просмотров
schedule
22.10.2022
Создавайте с использованием бесформенных универсальных экземпляров по умолчанию для классов case с параметрами, определяющими общий метод createValue.
Я пытаюсь достичь следующего - и использование shapeless кажется мне хорошим путем.
Учитывая текущую модель класса:
import shapeless._
object ShapelessTest {
case class Definition[T](id: String) extends Typeable[T] {
type V = Value[T]...
268 просмотров
schedule
06.08.2022