HList, что означает "разнородные списки", представляет собой структуру данных для списка элементов разных, но известных во время компиляции типов. Этот тег слабо связан с [list] и не имеет отношения к [html-lists]
1 ответ

Тушить костер Артерии с помощью Shapeless?

У меня есть ситуация, когда я хочу абстрагироваться над арностью и установить соглашение о типе между одним или несколькими "необработанными" типами (A а также B ниже), метод, который должен вернуть соответствующий Seq(Option[A], Option[B], ...) из …
18 ноя '14 в 01:05
2 ответа

Как я могу использовать новый Slick 2.0 HList, чтобы преодолеть ограничение в 22 столбца?

В настоящее время я пишу код Slick для целевой старой схемы с двумя таблицами> 22 столбцов. Как мне использовать новый код HList? У меня 2.0-M3 работает нормально в Scala 2.10.3. Вот синтаксис, который я сейчас использую с case-классами / кортежами.…
12 дек '13 в 22:11
1 ответ

Shapeless - применение заводских функций с HList

У меня есть несколько заводских функций, которые принимают одинаковые аргументы и возвращают разные типы. В настоящее время я вызываю их все явно, но это очень многословно, и я хочу обобщить фабрики в HList и вызвать каждый, сопоставляя HList, case …
12 июн '17 в 01:41
1 ответ

Почему экземпляр не выбран?

Это итерация по переменным типа в контексте не исправлена? со связанными типами. Я получаю следующее сообщение об ошибке, но я не могу понять, почему именно HasRecipeCase False экземпляр не выбран - все остальные поля (кроме False) должен быть доста…
19 апр '18 в 12:16
1 ответ

Тип переменных в контексте не зафиксирован?

В настоящее время я экспериментирую с кодом уровня типа. У меня есть один экземпляр с переменной типа, которая встречается только в контексте, а не в самом экземпляре. Каким-то образом компилятору это не нравится, но я не могу понять, почему нет. До…
18 апр '18 в 15:17
1 ответ

Почему отображение по HList Option[T] не работает?

Это не компилируется и я не понимаю почему: import shapeless._ import poly._ object option extends (Option ~> List) { def apply[T](t: Option[T]) = t.toList } val simple = Some(1) :: Some("hello") :: Some(true) :: HNil val opts: List[Int] :: List[…
30 сен '14 в 18:22
2 ответа

Shapeless: собственное ограничение HList с использованием Coproduct

(ПРИМЕЧАНИЕ. Split from Shapeless: попытка ограничить элементы HList их типом) Вопрос 2 - Собственное ограничение с использованием Coproduct Что я действительно хотел сделать, так это написать новое ограничение, используя Coproduct. trait CPConstrai…
25 сен '15 в 16:01
2 ответа

Haskell: Показать все элементы, которые можно показывать в Hlist

Я пытался map show . mapMaybe fromDynamic $ [toDyn "one", toDyn (\x -> x::Integer), toDyn 3, toDyn ()] но он вернулся ["()"]
04 фев '13 в 21:22
1 ответ

Отображение уровня типа по HList

Я управляю своей базой данных API и по сути хотел бы моделировать семейства столбцов как HList столбцов, причем последний свободно Seq[_]так что где-то у меня типа типа Column[String]::Column[Int]::Column[Double]::HNilсо всеми элементами, имеющими о…
1 ответ

Делая шаблоны верхнего уровня мономорфными

import Control.Lens -- is there a way I can write top-level definitions -- in an arbitrary order like px = proto & _1 %~ asTypeOf '2' py = proto & _2 %~ asTypeOf "2" proto = (undefined, undefined) -- but have types inferred like the followin…
27 май '14 в 21:29
1 ответ

Как объединить кортежи в фантомные типы в Haskell?

Я пишу комбинатор SQL, который позволяет составлять фрагменты SQL как моноиды. У меня есть примерно такой тип (это упрощенная реализация): data SQLFragment = { selects :: [String], froms :[String], wheres :: [String]} instance Monoid SQL Fragment wh…
04 июн '14 в 17:18
1 ответ

Длина пареметра типа HList в пересчете на Nat

Предположим, у меня есть метод без параметров. Как я могу определить длину параметра типа? def func[T <: HList]: Nat = { // some magic }
12 авг '16 в 16:56
1 ответ

Разобрать класс case, содержащий HList, в строку JSON, используя Circe

Я делаю что-то в Скала. У меня есть следующий класс дела: import shapeless._ case class Foo(param1: String, param2: HList) Я хотел бы получить JSON-представление этого типа, используя Circe . Я также хотел бы отобразить полученную строку JSON обратн…
28 ноя '16 в 15:41
1 ответ

Бесформенное отображение HList

Я попробую import shapeless._ val ilist = List(1,2,3) ; val slist = List("a", "b", "c") ; (ilist :: slist :: HNil).map(list: List[_] => list -> list.length) и компилятор говорит, что ему нужен тип аргумента в функции карты или он не может найт…
17 янв '16 в 10:52
1 ответ

Реализация зависимых от пути типов карт в Shapeless

Я хочу собрать карту, которая содержит отображение зависимого от пути типа от внешнего к внутреннему: import shapeless._ import shapeless.ops.hlist._ abstract class Outer { type Inner def inner: Inner } private case class Derp(hl: HList) { def get(o…
17 янв '18 в 06:49
0 ответов

Безопасный выбор типа и отображение нетипизированного необработанного результата в Slick

У меня есть ситуация, когда клиентское приложение не полностью осведомлено о схеме базы данных. Например, я точно знаю, что есть email поле. Но в качестве результата запроса я хотел бы вернуть все поля. Они никак не обрабатываются, я просто сериализ…
16 апр '18 в 16:50
3 ответа

Ограниченный гетерогенный список

Я искал Hackage и не мог найти ничего подобного, но это кажется довольно простым и полезным. Есть ли библиотека, которая содержит тип данных? data HList c where (:-) :: c a => a -> HList c Nil :: HList c Все найденные мной списки HL могут имет…
12 сен '17 в 01:27
1 ответ

Scala, gremlin-scala, HLists, Poly2, RightFold и отсутствующий неявный Prepend

Итак, я пытаюсь инкапсулировать серию операций из gremlin-scala в HList так что я могу сделать RightFold над ними (это позволило бы мне построить запрос Гремлина как данные: HList из Operations). Вот что я имею в виду: обычно вы можете позвонить gre…
23 ноя '16 в 00:42
1 ответ

Странное влияние неявного Mapper на неявный параметр Mapped

Предположим, у меня есть контейнер-маркер case class TypedString[T](value: String) и частичная функция трюк abstract class PartFunc[Actual <: HList] { val poly: Poly def apply[L1 <: HList](l: L1)(implicit mapped: Mapped.Aux[Actual, TypedString…
30 июн '16 в 16:49
2 ответа

Как читать элемент из Scala HList?

Существует очень мало читаемой документации о HLists, и ответы, которые я могу найти на SO, приходят из космоса для скромного новичка в Scala. Я столкнулся с HLists, потому что Slick может автоматически генерировать некоторые для представления строк…
13 янв '17 в 15:12