В haskell без линз я могу делать такие вещи, как: Data Item = Item {количество :: Double, цена :: Double} стоимость :: Item -> Double cost = (*) <$> количество <*> цена Если я использую линзы. ..
Я пытаюсь написать функцию композиции функций с переменным числом переменных. Это в основном (.), за исключением того, что вторая функция аргумента является вариативной. Это должно разрешить такие выражения, как: map even . zipWith (+...
Так, например, Python и Java имеют виртуальную машину, а C и Haskell - нет. (Поправьте меня, если я ошибаюсь) Думая о том, какие языки есть по обе стороны линии, я не могу найти причину. Java статична в ...
Я нашел этот фрагмент кода в пакете sendfile для Haskell:http://patch-tag.com/r/mae/sendfile/snapshot/current/content/pretty/src/Network/Socket/SendFile/Linux.hsc--sendfile64 дает LFS...
Есть ли способ дополнительно ограничить контекст существующего класса типов? Например, класс типов Functor: class Functor f where fmap :: (a -> b) -> fa -> fb Этот класс...
Мне нужна функция, которая получает два Ints (a и b) и возвращает A / B как Int. Я уверен, что A / B всегда будет целым числом. Вот мое решение: myDiv :: Int -> Int -> Int
myDiv ab = let x = ...
В документации указано: Прагма {-# INLINABLE f #-} в функции f ведет себя следующим образом: В то время как INLINE говорит «пожалуйста, встройте меня», INLINABLE говорит «не стесняйтесь встраивать меня; используйте ...
Я пытаюсь решить алгоритмическую головоломку на Haskell, и для этого мне нужна довольно большая структура данных. Однако сайт решения проблем, на который я отправляю свое решение, не использует никаких параметров времени выполнения, чтобы разрешить ...
Недавно я изучал Haskell и был разговаривал с другом, который работает через SICP. Нам было интересно сравнить Common Lisp и Scheme, и поэтому я решил в качестве упражнения попытаться перевести ...
import Data.List (genericLength) len = genericLength: t genericLength
genericLength :: (Num i) => [b] -> i
: t len
len :: [b] -> Integer Почему тип len отличается от типа ...
Я начинаю Haskell ... Я попытался написать следующую тривиальную функцию двумя разными способами, позволив Haskell определяют типы, и система типов делает что-то свое в каждом случае. Что такое ...
Каков рекомендуемый способ тестирования нескольких логических выражений? Я использовал этот :чехол ()из ()| тест1 -> значение1 | тест2 -> значение2 | иначе ->...
У меня есть следующий код на Haskell, реализующий простую версию утилиты командной строки unix "cat". Тестирование производительности с помощью «времени» для файла размером 400 МБ примерно в 3 раза медленнее. (точный сценарий я ...
В отчете на Haskell 98 я обнаружил следующее: синтаксис выражений типа Haskell приведен выше. Так же, как значения данных создаются с использованием конструкторов данных, значения типов создаются из конструкторов типов. ...
Я читал много статей, пытаясь понять разницу между функциональным и логическим программированием, но единственный вывод, который я смог сделать до сих пор, заключается в том, что логическое программирование определяет ...
Механизм вывода типов в Haskell намного мощнее, чем в Scala. В Haskell мне редко приходится явно писать типы, тогда как в Scala типы могут выводиться только в выражениях, но не…
Для дешевых операций, таких как добавление в списки (а не строки символов), я бы использовал Data.DList.
Что меня сдерживает, так это то, что пакет на Hackage помечен как «экспериментальный», а последнее обновление было в 2009 году. ...
Как удалить дубликаты подстрок в строке? так, например, если у меня есть строка типа smith: rodgers: кто-то: smith: white, то как мне получить новую строку, в которой удален дополнительный кузнец, например ...
Недавно я натолкнулся на фрагмент кода, который в противном случае использовал Haskell для сопоставления с образцом в списке. Это показалось мне странным, так как: ghci>: t в противном случае :: Bool Итак, я попробовал следующее: ghci & ...
У меня есть базовая настройка приложения "hello world" с использованием wai, и я хотел бы использовать wai-handler-devel, но не знаю, как это сделать, и не могу найти никаких примеров его в использовании на вай-проекте. {- # ...
Кто-нибудь знает, как получить Cabal Unit для эксплуатации параллелизма? Я компилируюсь с GHC, и пока я не знаю, может ли сам GHC сделать параллельные сборки, наверняка Cabal Install может запустить несколько ...
Для функции с как минимум n аргументов, я хочу повернуть первый аргумент, чтобы он стал n-м аргументом. Например (в нетипизированном лямбда-исчислении): r (λa. a) = λa. а
r (λa. ...
Посмотрите на проблема: обычно в интерактивной среде Haskell нелатинские символы Unicode (которые составляют часть результатов) печатаются с экранированием, даже если языковой стандарт допускает такие символы (как ...
Я пытаюсь немного освоить Haskell, и я чередую трепет и недоумение. Одна из действительно отталкивающих вещей для меня, как бы банально это ни казалось, - это идиома сопоставления с образцом (x: xs). ...
Монады могут делать много удивительных, сумасшедших вещей. Они могут создавать переменные, содержащие суперпозицию значений. Они могут позволить вам получить доступ к данным из будущего до того, как вы их вычислите. Они могут позволить вам...
Я пытаюсь напишите функцию toPeano :: Int -> Nat
toPeano n =, которая превращает целое число в его число Пеано. У меня есть данные: data Nat = Zero | Succ Nat, производное Show Например, ...
Почему часто помещают определения классов и типов в специальный модуль Types вместо того, чтобы помещать их в соответствующее пространство имен? Например, давайте возьмем запись Config из исходного кода Yi. ...
Я вижу и использую символы :: везде, но до сих пор не знаю, что это за: : символ означает при программировании на Haskell, например: run :: Int -> Int -> Int
- ?? Что означает :: (двойное двоеточие) в ...