Описание тега context-bound

Границы контекста были введены в Scala 2.8.0 и обычно используются с так называемым шаблоном класса типа, шаблоном кода, который имитирует функциональные возможности, предоставляемые классами типов Haskell, хотя и более подробным образом.
1 ответ

В чем преимущество Scala с привязкой к контексту над обычным параметром?

Я читаю о границах контекста и неявных параметрах, которые должны работать как классы типов. Примеры, которые я часто вижу Ordering[T], Что-то вроде: foo[T : Ordering](a: T, b: T) который является сахаром для foo[T](a: T, b: T)(implicit ord: Orderin…
06 мар '14 в 22:35
1 ответ

Возможно ли иметь два или более связанных с контекстом класса в Scala

Как мне указать, что мне нужно, например, ClassTag И Порядок для T? пример def sort[T: ClassTag <and> Ordering](future: Future[Seq[T]]): Future[Seq[T]]
21 июл '14 в 15:37
1 ответ

Scala: явное указание контекста, связанного во втором конструкторе

Почему это разрешено: class Foo[O: Option](s: String) new Foo[Any]("foo")(None) пока это не class Foo[O: Option](s: String) { def this() = this("foo")(None) } сообщение компилятора: Foo [O] не принимает параметры Есть ли способ предоставить контекст…
05 сен '14 в 22:56
2 ответа

Неявное разрешение для аргумента функции

Я попытался реализовать сортировку слиянием в Scala. Я добрался до следующего: def mergeSort[A: Ordering](as: List[A]): List[A] = as match { case Nil => as case head :: Nil => as case _ => { val (l, r) = split(as) merge(mergeSort(l), mergeS…
15 июн '15 в 12:36
1 ответ

В Scala, как создать признак для классов с функциями, использующими разные границы контекста

Теперь я хочу сериализовать / десериализовать данные Json, и на выбор есть несколько библиотек JSON. Тем не менее, они используют разные контекстные границы для кодирования / декодирования, что затрудняет определение их характеристик. trait JsonLib …
28 апр '17 в 00:26
1 ответ

Scala - параметры типа метода

Я пытаюсь понять какой-то автоматически сгенерированный код компилятором scala, но я не знаю, после чего искать. У меня есть следующий класс: trait Arrow1[F[_, _]] abstract class Test { def f1[F[_, _] : Arrow1, A, B, C](fa: F[A,B], fb: F[A, C]): F[A…
12 авг '18 в 21:22
2 ответа

Решение множественного наследования (для предварительно приготовленных классов)

Что мне нужно: класс с двумя родителями, которые ContextBoundObject и другой класс. Почему: мне нужно получить доступ к ContextBoundOject регистрировать вызовы метода. Композиция работает? На данный момент нет (типы не распознаются, между прочим). Е…
2 ответа

Ситуации, когда Манифест недоступен

def bar[T: Manifest](a: Array[T]) = Array.ofDim[T](3) class Foo bar(Array(new Foo)) //Array[Foo] = Array(null, null, null) Манифесты, по-видимому, существуют неявно для произвольных типов, как показано выше. Поскольку у нас есть привязка к контексту…
18 ноя '11 в 23:43
1 ответ

Какова была причина ограничить объединение неявных параметров и границ вида / контекста?

Один из последних коммитов в Scala master снимает ограничение на объединение границ контекста / представления с неявными параметрами. Это большое улучшение, которое уменьшает количество шаблонов, но какова была причина того, что мы сделали такое ог…
26 июл '11 в 21:30
1 ответ

Scala: границы тройного контекста, параметры доказательства не найдены

Я отредактировал это в более простой форме вопроса, на который @Zhi Yuan Wang ответил: object ContBound { def f2[A: Seq, B: Seq]: Unit = { val a1: Seq[A] = evidence$1 val b2: Seq[B] = evidence$2 } def f3[A: Seq, B: Seq, C: Seq]: Unit = { val a1: Seq…
25 авг '16 в 13:10
2 ответа

":" в параметре типа

В проекте scala-arm я вижу такой код: def managed[A : Resource : Manifest](opener : => A) : ManagedResource[A] = new DefaultManagedResource(opener) Может кто-нибудь объяснить значение [A: Resource: Manifest]?
26 сен '10 в 14:51
1 ответ

Scala вложенные параметры неявного типа

Можете ли вы объяснить тип T в этом определении метода? Это от Гатлинга. Я знаю, что двоеточие для значений, связанных с контекстом. здесь я вижу их вложенными. Что такое # за? implicit def stringToExpression[T: TypeCaster: Types[NonValidable]#DoesN…
05 авг '17 в 09:53
2 ответа

Прозрачный прокси для оригинального типа

У меня есть объект времени выполнения типа {System.Runtime.Remoting.Proxies.__TransparentProxy}, который создается из экземпляра класса, который наследуется от ContextBoundObject. Этот класс вызывает событие для какого-то другого объекта, мне нужно …
14 авг '11 в 21:44
2 ответа

Связанный контекст Scala неожиданно не работает

Я попытался определить функцию, которая будет проверять, отсортирован ли общий Seq. Я придумал это: import Ordering.Implicits._ def isOrdered[A: Ordering](seq: Seq[A]): Boolean = seq.sliding(2).map({ case List(a, b) => b > a }).forall(identity…
05 авг '13 в 12:37
2 ответа

Play Action Composition - параметризованный парсер жесткого кодирования

Я хотел бы создать пользовательское действие, которое устраняет шаблон написания таких действий: Action[MyClass](BodyParsers.parse.json[MyClass]) { req => ... Тем не менее, я продолжаю сталкиваться с ошибками определения класса. Вот моя самая усп…
18 апр '16 в 00:21
1 ответ

Scala: Как заставить работать конвертирование List[T] с привязкой к контексту?

Это мой первый вопрос, поэтому надеюсь, что я предоставлю достаточно подробностей. Не стесняйтесь просить разъяснений. Принимая во внимание следующее, который работает: implicit def optionBsonReader[T, U](implicit ev: BsonReader[T, U]) = new BsonRea…
06 сен '11 в 00:48
3 ответа

Как получить экземпляр класса типа, связанный с контекстным ограничением?

Примечание: я задаю этот вопрос, чтобы ответить на него сам, но другие ответы приветствуются. Рассмотрим следующий простой метод: def add[T](x: T, y: T)(implicit num: Numeric[T]) = num.plus(x,y) Я могу переписать это, используя контекст, связанный с…
07 дек '10 в 03:15
1 ответ

Цепочка событий / Прокси к исходному объекту

У меня есть класс, который наследуется от объекта, привязанного к контексту. У класса есть атрибут по некоторым свойствам. Когда какое-то свойство изменяется, PostProcess(IMessage msg, IMessage msgReturn) вызвать событие, и из события снова запускае…
21 июл '11 в 19:49
2 ответа

Scala контекстные границы

Используя границы контекста в Scala, вы можете делать такие вещи, как trait HasBuild[T] { def build(buildable: T): Something } object Builders { implict object IntBuilder extends HasBuild[Int] { override def build(i: Int) = ??? // Construct a Someth…
23 сен '16 в 13:06
1 ответ

Scala: иерархия классов типов и неявное разрешение

Предположим, я пытаюсь представить, скажем, область булевой логики (пока игнорируя сокращение). Так что в моем магазине будут экземпляры Bools, Ands, Ors, Nots и т. Д. Однако, хотя у меня будут конкретные представления об этих вещах, во многих случа…
30 авг '12 в 11:46