Вопросы по теме 'typeclass'

несколько параметров типа в классах типа Haskell
Я пытаюсь сделать некоторую абстракцию в Haskell98, но не знаю, как это сделать. Что я хочу сделать, так это определить класс для типов, которые могут быть преобразованы в списки. toList :: a -> [b] Но я не знаю, как определить класс...
3519 просмотров
schedule 26.07.2022

Как Haskell узнает, какой экземпляр класса типов вы имеете в виду?
Этот вопрос возник при чтении новой главы отличного Learn You a Haskell, посвященной аппликативным функторам. Класс типов Applicative включает в себя как часть определения экземпляра Maybe: pure = Just Если я просто перейду в GHCi и...
678 просмотров
schedule 23.07.2022

Haskell: алгебраические типы данных, переменные типов которых должны быть экземплярами класса типов.
Я пытаюсь определить алгебраический тип: data MyType t = MyType t И сделайте его экземпляром Show: instance Show (MyType t) where show (MyType x) = "MyType: " ++ (show x) GHC жалуется, потому что не может сделать вывод, что тип «t»...
865 просмотров
schedule 28.04.2023

Почему Haskell интерпретирует мой тип Num как Enum?
Я пытаюсь скомпилировать следующую функцию в Haskell для имитации дифференцирования многочлена, константы которого указаны в числовом списке: diff :: (Num a) => [a] -> [a] diff [] = error "Polynomial unspecified" diff coeff = zipWith (*)...
742 просмотров
schedule 11.07.2022

Нет экземпляра для (Floating Int)
Я изучаю Хаскель. Я создал функцию, которая возвращает таблицу умножения до «n» в базе «b». Числа дополняются до 'w' цифр. В качестве последнего шага я хочу автоматически вычислить «w». Почему это не компилируется? -- Number of digits needed...
10008 просмотров
schedule 07.12.2022

Почему Haskell не делает вывод о классах типов данных в сигнатурах функций?
Во-первых, этот вопрос не на 100% специфичен для Haskell, не стесняйтесь комментировать общий дизайн классов типов, интерфейсов и типов. Я читаю LYAH - создание типов и классов типов . Ниже приводится отрывок по которым я ищу дополнительную...
889 просмотров

Типы Haskell, разочаровывающие простую "усредненную" функцию
Я играю с начинающим Haskell, и я хотел написать среднюю функцию. Это казалось самой простой вещью в мире, правда? Неправильный. Похоже, что система типов Haskell запрещает среднему работать с общим числовым типом - я могу заставить его...
34927 просмотров
schedule 26.12.2022

Получение произвольных функций в Haskell
При работе с производными экземплярами в Haskell можно ли создавать функции для произвольных типов или мы ограничены конкретными функциями?
1288 просмотров

Haskell: как обойтись без экземпляра для?
Я изучаю Haskell. Я сейчас на восьмой главе этой книги . Главное, что я понял до сих пор, это то, что Haskell очень недружелюбен ко мне и кусает меня за задницу, где это возможно. Более того ... Черт! Хватит траура, к делу. Вот код: module...
1375 просмотров
schedule 22.04.2022

Ошибка переменной неоднозначного типа при определении пользовательской функции чтения
При попытке скомпилировать следующий код, который представляет собой расширенную версию сборки readMay из Safe package. readI :: (Typeable a, Read a) => String -> a readI str = case readMay str of Just x -> x...
209 просмотров
schedule 24.10.2022

Классы типов Haskell и интерфейсы Go
Каковы сходства и различия между классами типов Haskell и интерфейсами Go? Каковы относительные достоинства/недостатки двух подходов?
4111 просмотров

Осиротевшие экземпляры в Haskell
При компиляции моего приложения Haskell с параметром -Wall GHC жалуется на потерянные экземпляры, например: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result Класс типа ToSElem не мой, он определен HStringTemplate...
9662 просмотров
schedule 18.03.2023

не может экзистенциально абстрагироваться от параметризованного типа
Я развлекался со Scala 2.8 и пытался определить сутенера . который добавляет метод "as" к конструкторам типов, позволяющий преобразовывать один функтор в другой (пожалуйста, не обращайте внимания на тот факт, что здесь я не обязательно имею дело с...
1318 просмотров
schedule 25.06.2023

Наследование классов типов Haskell и класс параметрических типов
Я хочу сказать, что некая параметризованная монада st работает с обычной памятью, но подкласс моей параметризованной монады должен накладывать дополнительное ограничение на тип памяти. В коде: class Memory m where ... class State st where...
427 просмотров
schedule 08.11.2022

Scala: общие неявные преобразователи?
Я хотел бы определить общий неявный преобразователь, который работает для всех подтипов типа T . Например: abstract class Price[A] { def price(a: Any): Int } trait Car case class Prius(year: Int) extends Car trait Food case class...
5773 просмотров
schedule 02.12.2022

Как деривация работает в Haskell?
Алгебраические типы данных (ADT) в Haskell могут автоматически становиться экземплярами некоторых классов типов (например, Show , Eq ) путем получения от них. data Maybe a = Nothing | Just a deriving (Eq, Ord) У меня вопрос:...
48677 просмотров

Использование типа Int против ограничения Integral. Преимущество?
Рассмотрим эти (более или менее) эквивалентные сигнатуры типов: f1 :: [a] -> Int -> a f2 :: Integral b => [a] -> b -> a f2 является более общим, чем f1 , и это большое преимущество, но есть ли преимущество f1 перед f2...
784 просмотров
schedule 12.09.2022

Классы типов Haskell и классы шаблонов C ++
Можно ли имитировать функциональность классов типов Haskell с помощью шаблонов C ++ (или C #)? Есть ли в этом смысл или есть ли в этом выгода? Я пытался создать класс Functor на C ++, но не смог. Я пробовал что-то вроде этого: #include...
3328 просмотров
schedule 24.04.2022

Создание (a, a) функтора
Как я могу сделать (a, a) Functor , не прибегая к newtype ? В основном я хочу, чтобы это работало так: instance Functor (a, a) where fmap f (x, y) = (f x, f y) Но, конечно, это не законный способ выразить это: Kind mis-match The...
3472 просмотров
schedule 18.12.2022

Понимание того, как Либо является экземпляром Functor
В свободное время я изучаю Haskell, так что это вопрос для начинающих. В своих чтениях я наткнулся на пример, иллюстрирующий, как Either a становится экземпляром Functor : instance Functor (Either a) where fmap f (Right x) = Right (f x)...
8800 просмотров
schedule 07.05.2023