0
ответов

Создание нового экземпляра Ord для списков

Это моя первая попытка создать собственный экземпляр класса, такого как Ord. Я определил новую структуру данных для представления списка: список данных a = Empty | Минусы a (List a) производное (Show, Eq) ...
вопрос задан: 25 May 2012 04:39
0
ответов

Рекурсивно определенные экземпляры и ограничения

Я играл с векторами и матрицами, где размер закодирован в их типе, используя новое расширение DataKinds. В основном это выглядит так: data Nat = Zero | Succ Nat data Vector :: Nat -&...
вопрос задан: 10 May 2012 07:41
0
ответов

Почему было трудно реализовать классы типов?

На слайде 30/78 этой презентации Саймон предполагает, что реализация классов типов вначале была «отчаянием». Кто-нибудь знает, почему это произошло?
вопрос задан: 3 May 2012 21:50
0
ответов

Есть ли название для этой функции или шаблона?

Вместо fmap, который применяет функцию к значению -в -a -functor :fmap ::Functor f => (a -> b)-> fa -> fb Мне нужна функция, в которой функтор имеет функцию, а значение простое :...
вопрос задан: 25 April 2012 16:17
0
ответов

Когда эта редукция может изменить тип функции& #39;s?

Что именно происходит со следующим? > пусть тест = показать карту > :t тест test ::[ ()] -> [String] > :t (map show) (map show)::Show a => [a] -> [String] I am Интересно, как я...
вопрос задан: 25 April 2012 06:22
0
ответов

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

У меня есть тип данных, который я продвигаю через DataKinds в ghc 7.4.1, и заданный класс типов, который я хочу использовать для выполнения операций, специфичных для типа. Тип данных = TInt32 | Тинт64 | TInt16 class TypeTraits a where.....
вопрос задан: 23 April 2012 19:07
0
ответов

Как я могу объединить два ограничения типа с логическим или в Haskell?

В Haskell у нас есть возможность комбинировать ограничения на типы с логическим «и». Рассмотрим следующий тип И (a ::Ограничение )b = (a, b )или более сложный класс (a, b )=> И a...
вопрос задан: 21 April 2012 01:23
0
ответов

Различие между классами типов MonadPlus, Alternative и Monoid?

Стандартные-классы типов библиотеки Haskell MonadPlus, Alternative и Monoid предоставляют по два метода с практически одинаковой семантикой:Пустое значение:mzero, empty или mempty. Оператор a ->...
вопрос задан: 16 April 2012 02:06
0
ответов

Есть ли штраф во время выполнения, связанный с классами типов?

Заголовок в значительной степени резюмирует мой вопрос: есть ли штраф во время выполнения, связанный с классами типов Haskell, или это просто одна из тех вещей (например, фантомные типы) без последствий во время выполнения...
вопрос задан: 13 April 2012 22:04
0
ответов

Haskell:Почему нет несоответствия типов (и почему это компилируется)?

Я так хотел спать, что написал следующий код, (модифицированный, чтобы просто показать путаницу):fac s = take 10 [s, s `mod` 1..] maxFactor x = if (s = = [])then x else head &...
вопрос задан: 11 April 2012 08:24
0
ответов

Ограничения типов F# и разрешение перегрузки

Я пытаюсь эмулировать систему классов типов в F#; Я хотел бы создать парный принтер, который автоматически создает правильную серию вызовов функций печати. Моя последняя попытка...
вопрос задан: 26 March 2012 07:41
0
ответов

Зависимые типы методов и классы типов

У меня есть куча классов типов хранилища данных, которые выглядят одинаково. trait FooStore[C] { def create(f: FooId => Foo)(c: C): Foo // методы обновления и поиска } Я хотел упростить вещи и был...
вопрос задан: 25 March 2012 03:19
0
ответов

Объясните реализацию Traverse[List] в scalaz-seven

Я пытаюсь понять реализацию traverseImpl в scalaz-seven: def traverseImpl[F[_], A, B](l: List[A])(f: A => F[B])(неявный F: Applicative[F]) = { DList.fromList(l).foldr (F.point(...
вопрос задан: 15 March 2012 04:16
0
ответов

haskell — какой-либо способ генерировать «производные» экземпляры для грубо кортежно-изоморфных типов данных?

Предположим, у меня есть тип данных, такой как данные D a = D a a a и класс класса типов C c ... instance (C c1, C c2) => C (c1, c2) Затем я хочу иметь возможность записывать данные D a = D aaa, производные C, и иметь...
вопрос задан: 11 March 2012 23:21
0
ответов

Как написать семейство функций printf (отладочная печать и т. Д.) На Haskell

Это сложная проблема больше, чем полезная проблема (я потратил несколько часов на нем). Учитывая некоторые функции, put_debug, put_err :: String -> IO () put_foo :: String -> StateT [String] m () I ...
вопрос задан: 5 March 2012 07:27
0
ответов

Возможно ли иметь «локальный» экземпляр класса типов?

Я имею в виду определение экземпляра класса типов, который применяется в локальной (let или where) области действия функции. Что еще более важно, я хочу, чтобы функции в этом экземпляре были замыканиями, т. е. были...
вопрос задан: 3 March 2012 11:44
0
ответов

Каков синтаксис типов ограничений для GHC 7.4.1?

Я получаю сообщение об ошибке, что ограничение не входит в область действия, когда я пытаюсь написать простой пример, {- # LANGUAGE UndecidableInstances, MultiParamTypeClasses, KindSignatures,. ..
вопрос задан: 26 February 2012 04:31
0
ответов

Проблемы с выводом типа GHC

Вопрос. Есть ли способ заставить этот код работать без явной подписи типа? Код. Во-первых, у меня есть гораздо более удобный альтернативный класс MonadTrans, вдохновленный Data.Newtype. Похоже ...
вопрос задан: 15 February 2012 21:49
0
ответов

Как использовать UndecidableInstances локально?

Да, я знаю, что UndecidableInstances может быть плохим. Я очень старался спроектировать свой модуль так, чтобы он не нуждался в нем, однако у меня получилось что-то вроде этого: instance Foo x (C x y) => Bar (C x y) where ...
вопрос задан: 14 February 2012 02:27
0
ответов

Почему классы типов вместо простого сопоставления с образцом?

Это что-то вроде философского вопроса, но я надеюсь, что на него я ответил официальной документацией или «словом божьим» (прочтите : SPJ). Есть ли какая-то конкретная причина, по которой комитет Haskell решил ...
вопрос задан: 2 February 2012 03:56
0
ответов

Существуют ли расширения языка или языки-потомки Haskell, которые предпочитают выразительность, особенно в работе с экземплярами?

Временами я сталкиваюсь с "особенностью", что Haskell соответствует только головкам экземпляров, а именно: instance (a ~ NewDataTyp b) => C a теперь будет соответствовать любому типу, т.е. писать еще один экземпляр ...
вопрос задан: 27 January 2012 05:07
0
ответов

Haskell - есть ли способ отключить синтаксис повторной привязки для случая создания экземпляров?

Существует раздражающая «особенность», что на создание экземпляров также влияет расширение RebindableSyntax. Пример того, что я хочу написать: {- # LANGUAGE RebindableSyntax # -} импортная версия Prelude ...
вопрос задан: 26 January 2012 20:27
0
ответов

Классы типов и записи как интерфейсы

У меня ужасные времена, когда я пытаюсь подключить функции во время выполнения (что мне и приходится делать), что может включать ограничения класса типов на входах и выходах функции. В таком языке, как Java, ...
вопрос задан: 19 January 2012 20:55
0
ответов

написание функций в haskell, которые работают только с ассоциированными типами

Я пытаюсь найти более элегантный способ написать следующий код. class C c, где тип E c :: * -> * class C c => A c, где g :: E ca -> E ca class (C c, A c) => D c, где ...
вопрос задан: 13 January 2012 22:11
0
ответов

Какую функциональность вы получаете бесплатно с Functors или другими классами типов?

Я прочитал статью, в которой говорится: Предоставление экземпляров для многих стандартных классов типов [Functors] сразу же даст вам много функциональности практически бесплатно Мой вопрос: что это за ...
вопрос задан: 9 January 2012 08:44
0
ответов

Обработка событий в Haskell

Я хотел бы реализовать на Haskell следующий сценарий. У меня есть перечислимый набор "событий", определенный следующим образом: data MyEvent = Event1 | Event2 | Event3 Я хочу ...
вопрос задан: 8 January 2012 18:44
0
ответов

Могут ли черты в D использоваться для классов типов?

Я новичок в D и ищу хороший способ программирования с классами типов, подобными Haskell, например Функторы, моноиды и т. Д. В D. Реализовано ли что-то подобное в Tango или Phobos? Я слышал о ...
вопрос задан: 3 January 2012 15:05
0
ответов

Как избежать квадратичного увеличения экземпляров класса типов?

Примите во внимание: {- # OPTIONS -fglasgow-exts # -} data Second = Second данные Минута = Минута data Hour = Hour - Смотри Ma ', фантомный тип! data Time a = Time Int instance Show (Time Second) where show (...
вопрос задан: 22 December 2011 13:53
0
ответов

Могу я добавить объявление экземпляра в GHCi

Я возился с HashMap и пытался использовать Data.Bson.ObjectId в качестве ключа. Я, конечно, обнаружил, что для этой структуры не существует экземпляра Hashable. Это нормально, потому что написание одного…
вопрос задан: 16 December 2011 20:30
0
ответов

Экземпляр Typeclass с функциональными зависимостями не работает

Играя с классами типов, я придумал, казалось бы, невинный класс Pair p a | p -> a where one :: p -> a two :: p -> a Кажется, это работает нормально, например. экземпляр Pair [a] a где ...
вопрос задан: 16 December 2011 15:41