У меня есть следующий класс типов, который моделирует оптимизацию запросов в стиле SQL: class OptimizableQuery q, где type Optimized q :: * optimize :: q -> Optimized q instance Query q => ...
I have the following algebraic data types: data Exp = Con Int | Var String | Op Opkind Exp Exp | Input deriving (Show,Eq) data Opkind = Plus | Minus | Mult | Div | More | Equal ...
Дано: data Foo = FooString String… class Fooable a where - (это хороший способ назвать это?) toFoo :: a -> Foo Я хочу сделать String экземпляром Fooable: instance Fooable String ...
Я действительно не могу этого понять. Зачем это вообще нужно? Я имею в виду, что если я использую параметр одного и того же типа, я думаю, это означает, что они должны быть одного типа. Я слышал, что это может помочь компилятору избежать бесконечного цик
Я хочу написать функцию с такой сигнатурой: getTypeRep: : Typeable a => ta -> TypeRep, где TypeRep будет представлением типа для a, а не для t a. То есть компилятор ...
Можно ли в Haskell написать функцию с сигнатурой, которая может принимать два разных (хотя и похожих) типа данных, и работать по-разному в зависимости от того, какой тип передан? Пример ...
Я относительно новичок в Haskell. Я пишу клон карточной игры uno, и мне нужен красивый цветной вывод карты. Я импортирую System.Console. ANSI, который предоставляет данные Color = Black | Красный ...
В настоящее время я пытаюсь написать небольшую игровую программу (Skat) в качестве хобби-проекта. Скат - это игра, в которой два игрока играют против одного. Поскольку есть разные типы игроков (lokal ...
На первый взгляд, существуют очевидные различия между двумя видами «классов». Однако я считаю, что есть больше общего: у обоих есть разные типы конструкторов.
Оба определяют группу ...
Я видел, как многие люди жаловались на некоторые классы типов из стандартной библиотеки, говоря что-то вроде «Monad должен требовать Functor» или даже «Monad должен требовать Applicative», » Applicative ...
Я хочу сделать все типы, которые являются экземплярами Enum и Bounded, также экземплярами Random. Следующий код делает это и должен работать (с соответствующими расширениями): import System ....
Я только ради интереса начал изучать Haskell. Я слежу за Learnyouahaskell.com. Там я нашел это: null проверяет, пуст ли список. Если это так, он возвращает True, в противном случае возвращает False. ...
Я читал о Haskell, и мне сложно понять, как определения функций обрабатываются на этом языке. Скажем, я определяю функцию суммы: let sum xy = x + y, если я запрашиваю ...
Имея опыт работы в Haskell, я в настоящее время пытаюсь познакомиться со Scala. Я столкнулся с некоторыми проблемами, пытаясь перевести небольшой расширяемый язык выражений из Haskell в Scala. ...
См. Пример кода ниже. Он не компилируется. Я думал, что, возможно, это потому, что у него должен быть единственный тип для первого параметра в тестовой функции. Но это не имеет смысла, потому что если я не ...
I'm reading Learn You a Haskell and I'm wondering why so many things are acting like a list, and nothing in the Prelude is using the native facility of type classes to set this up: "The bytestring ...
Пусть есть классы Fruit, Orange и Apple.
класс Orange extends Fruit
class Apple расширяет Fruit Теперь я хочу добавить функциональность записи для обоих типов Orange и Apple. Использование ...
У меня есть пользовательский тип данных Foo = Foo {a :: Int, b :: Int}, и я пытаюсь сделать Foo настраиваемым экземпляром чтения. У меня уже есть панель функций :: String -> Foo, и я попробовал сделать это: instance Read (...
Моя конкретная проблема на самом деле не связана с общим переводом объектно-ориентированного интерфейса на Haskell. Это просто лучшее название, которое я мог придумать. Тем не менее, я уверен, что моя проблема связана с ...
Кажется, невозможно интроспективно исследовать ограничения классов типов на функции, типы данных и тому подобное. Однако похоже, что ghci это делает. Prelude>: t show
show :: (Show a) => a -> String Итак ... ...
Учитывая тип класса class Dictionary w, где insert :: String -> String -> w -> w remove :: String -> w -> w lookUp :: String -> w -> String Я не могу записать экземпляр ...
Как я могу создать (a, a) функтор, не прибегая к новому типу? В основном я хочу, чтобы он работал следующим образом: instance Functor (a, a) where fmap f (x, y) = (fx, fy) Но, конечно, это не законно ...
У меня есть тип данных Polynomial r для многочленов в Haskell и экземпляр Ring для него. (Класс Ring r, где plus :: r -> r -> r; times :: r -> r -> r; negative :: r -> r; zero :: ...
Я ожидал, что следующий код завершится с ошибкой типа из-за нарушения minBound и maxBound. Но, как видите, он проходит без отметки об ошибке. {- # OPTIONS_GHC -...
Я начал читать этот документ по CRDT, который является способом совместного использования изменяемых данных одновременно, гарантируя, что операции, которые изменяют данные коммутативны. Мне казалось, что это будет ...
Можно ли имитировать функциональность классов типов Haskell с помощью шаблонов C ++ (или C #)? Есть ли в этом смысл или есть ли в этом выгода? Я пытался создать класс Functor на C ++ и ...
В scala мы можем использовать неявные классы типов для условного добавления методов к параметризованному типу в зависимости от параметров этого типа. Например, Iterator.sum: def sum [B>: A] (неявное число: ...
Я пытаюсь перевести стрелки основной библиотеки Haskell на F # (я думаю, что это ' это хорошее упражнение для лучшего понимания Arrows и F #, и я мог бы использовать их в проекте, над которым я работаю.) ...
Я хотел бы посмотреть, возможно ли иметь тип класс для преобразования одной вещи в другую и обратно из отображения [(a, b)]. Этот пример должен проиллюстрировать то, что я хотел бы сделать: data XX = ...
(Заранее извините, если вопрос глупый или очевидно - у меня нет большого опыта работы с Haskell). Есть ли способ выразить, что тип должен быть экземпляром класса типов более чем в одном ...