Вопросы по теме '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 просмотров
schedule
21.05.2022
Типы Haskell, разочаровывающие простую "усредненную" функцию
Я играю с начинающим Haskell, и я хотел написать среднюю функцию. Это казалось самой простой вещью в мире, правда?
Неправильный.
Похоже, что система типов Haskell запрещает среднему работать с общим числовым типом - я могу заставить его...
34927 просмотров
schedule
26.12.2022
Получение произвольных функций в Haskell
При работе с производными экземплярами в Haskell можно ли создавать функции для произвольных типов или мы ограничены конкретными функциями?
1288 просмотров
schedule
17.09.2022
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 просмотров
schedule
28.07.2023
Осиротевшие экземпляры в 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 просмотров
schedule
26.04.2022
Использование типа 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