Вопросы с тегом «haskell»

Haskell - это функциональный язык программирования, отличающийся строгой статической типизацией, отложенной оценкой, обширной поддержкой параллелизма и параллелизма и уникальными возможностями абстракции.

3
Являются ли все контейнеры фиксированного размера сильными моноидальными функторами и / или наоборот?
Класс Applicativeтипов представляет слабые моноидальные функторы, которые сохраняют декартову моноидальную структуру в категории типизированных функций. Другими словами, учитывая канонические изоморфизмы, свидетельствующие о том, что (,)образуется моноидальная структура: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, …

1
Параллельное «любое» или «все» в Haskell
Шаблон, с которым я сталкивался несколько раз, - это тот, в котором список значений должен быть проверен путем сопоставления некоторого теста и проверки, прошел ли какой-либо или все элементы. Типичное решение - просто использовать удобные встроенные функции allи any. Проблема в том, что они оцениваются в сериале. Во многих случаях …

1
Haskells Weak Head Нормальная форма
Я наткнулся на некоторые раздражающие вещи. Я знаю, что haskell работает со слабой головой нормальной формы (WHNF), и я знаю, что это такое. Введите следующий код в ghci (я использую команду: sprint, которая, насколько мне известно, сокращает выражение до WHNF): let intlist = [[1,2],[2,3]] :sprint intlist дает intlist = _это …

1
Как «concatMap» из mono-traversable способен «вытянуть» общий аргумент?
Я изучаю Haskell и делал простую программу DB-seed для Yesod, когда наткнулся на это поведение, которое мне трудно понять: testFn :: Int -> Bool -> [Int] testFn a b = if b then replicate 10 a else [] Сессия Йесод GHCI: $ :t concatMap testFn [3] concatMap testFn [3] :: …

5
Как сделать этот алгоритм более ленивым, не повторяя себя?
(Вдохновлен моим ответом на этот вопрос .) Рассмотрим этот код (он должен найти самый большой элемент, который меньше или равен заданному входу): data TreeMap v = Leaf | Node Integer v (TreeMap v) (TreeMap v) deriving (Show, Read, Eq, Ord) closestLess :: Integer -> TreeMap v -> Maybe (Integer, v) …

2
Вложенные состояния в Haskell
Я пытаюсь определить семейство государственных машин с несколько различными типами состояний. В частности, более «сложные» конечные автоматы имеют состояния, которые формируются путем объединения состояний более простых конечных автоматов. (Это похоже на объектно-ориентированную настройку, где объект имеет несколько атрибутов, которые также являются объектами.) Вот упрощенный пример того, чего я хочу достичь. …

2
Типы сумм - почему в Haskell `show (Int | Double)` отличается от `(show Int) | (показать дубль) `
Почему они не эквивалентны? show $ if someCondition then someInt else some double а также if someCondition then show someInt else show someDouble Я понимаю, что если вы изолируете if ... elseчасть в первом примере от выражения, то вы не сможете представить его тип анонимным типом суммы Int | Double, …

1
Что я могу сделать с callCC, что нельзя сделать с помощью cont?
Я действительно очень борюсь с пониманием callCC. Я получаю силу от Continuations и использую концепцию в некоторых своих проектах для создания классных концепций. Но мне никогда не приходилось использовать что-то с большими возможностями, чем cont :: ((a->r)->r)-> Cont r a. После его использования становится понятным, почему они называют Cont Monad …

1
Как контролировать масштабную инвариантность?
Я пытаюсь составить несколько диаграмм в виде таблицы. Я думаю, что это называется «индексная печать» , фотографы делают это, когда им приходится просматривать много фотографий одновременно. Во всяком случае, это код: main :: IO () main = mainWith @(Diagram B) $ (tile . fmap renderOne) examples renderOne :: AnyGraph -> …

3
Какие знания или обучение необходимы для того, чтобы кто-то записал определение сгиба, как это? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 7 месяцев назад . В последнее время я пытаюсь использовать Haskell в некоторых моих реальных …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.