0
ответов

Как правильно комбинировать линзы (не сочинять)

В haskell без линз я могу делать такие вещи, как: Data Item = Item {количество :: Double, цена :: Double} стоимость :: Item -> Double cost = (*) <$> количество <*> цена Если я использую линзы. ..
вопрос задан: 23 June 2015 15:16
0
ответов

Аппликативы составляют, монады - нет

Аппликативы составляют, а монады - нет. Что означает вышеприведенное утверждение? И когда одно предпочтительнее другого?
вопрос задан: 18 June 2015 06:11
0
ответов

Вариадная функция компоновки?

Я пытаюсь написать функцию композиции функций с переменным числом переменных. Это в основном (.), за исключением того, что вторая функция аргумента является вариативной. Это должно разрешить такие выражения, как: map even . zipWith (+...
вопрос задан: 16 June 2015 12:20
0
ответов

Что такое виртуальная машина и зачем она нужна динамическим языкам?

Так, например, Python и Java имеют виртуальную машину, а C и Haskell - нет. (Поправьте меня, если я ошибаюсь) Думая о том, какие языки есть по обе стороны линии, я не могу найти причину. Java статична в ...
вопрос задан: 12 June 2015 12:39
0
ответов

Что означает '#type' означает интерфейс внешней функции Haskell?

Я нашел этот фрагмент кода в пакете sendfile для Haskell:http://patch-tag.com/r/mae/sendfile/snapshot/current/content/pretty/src/Network/Socket/SendFile/Linux.hsc--sendfile64 дает LFS...
вопрос задан: 11 June 2015 10:08
0
ответов

Как дополнительно ограничить существующий класс типов в Haskell

Есть ли способ дополнительно ограничить контекст существующего класса типов? Например, класс типов Functor: class Functor f where fmap :: (a -> b) -> fa -> fb Этот класс...
вопрос задан: 6 June 2015 22:31
0
ответов

Разделить Int на Int и вернуть Int

Мне нужна функция, которая получает два Ints (a и b) и возвращает A / B как Int. Я уверен, что A / B всегда будет целым числом. Вот мое решение: myDiv :: Int -> Int -> Int myDiv ab = let x = ...
вопрос задан: 6 June 2015 19:43
0
ответов

Есть ли причина не использовать прагма INLINABLE для функции?

В документации указано: Прагма {-# INLINABLE f #-} в функции f ведет себя следующим образом: В то время как INLINE говорит «пожалуйста, встройте меня», INLINABLE говорит «не стесняйтесь встраивать меня; используйте ...
вопрос задан: 20 May 2015 15:06
0
ответов

Использование опции -with-rtsopts ghc в качестве прагмы

Я пытаюсь решить алгоритмическую головоломку на Haskell, и для этого мне нужна довольно большая структура данных. Однако сайт решения проблем, на который я отправляю свое решение, не использует никаких параметров времени выполнения, чтобы разрешить ...
вопрос задан: 20 May 2015 05:03
0
ответов

Иерархия числовых типов Haskell в упражнениях SICP

Недавно я изучал Haskell и был разговаривал с другом, который работает через SICP. Нам было интересно сравнить Common Lisp и Scheme, и поэтому я решил в качестве упражнения попытаться перевести ...
вопрос задан: 12 May 2015 16:07
0
ответов

Псевдоним имени функции имеет другую сигнатуру типа. Почему?

import Data.List (genericLength) len = genericLength: t genericLength genericLength :: (Num i) => [b] -> i : t len len :: [b] -> Integer Почему тип len отличается от типа ...
вопрос задан: 12 May 2015 08:04
0
ответов

Преобразование функции в безточечный стиль меняет ее тип

Я начинаю Haskell ... Я попытался написать следующую тривиальную функцию двумя разными способами, позволив Haskell определяют типы, и система типов делает что-то свое в каждом случае. Что такое ...
вопрос задан: 12 May 2015 05:06
0
ответов

Правильно ли использовать выражение case для значения Unit только для того, чтобы использовать защиту?

Каков рекомендуемый способ тестирования нескольких логических выражений? Я использовал этот :чехол ()из ()| тест1 -> значение1 | тест2 -> значение2 | иначе ->...
вопрос задан: 7 May 2015 14:57
0
ответов

Производительность на Haskell, реализующая Unix's & ldquo; cat & rdquo; программа с использованием Data.ByteString

У меня есть следующий код на Haskell, реализующий простую версию утилиты командной строки unix "cat". Тестирование производительности с помощью «времени» для файла размером 400 МБ примерно в 3 раза медленнее. (точный сценарий я ...
вопрос задан: 6 May 2015 08:52
0
ответов

Haskell: Почему не допускаются конструкторы инфиксного типа?

В отчете на Haskell 98 я обнаружил следующее: синтаксис выражений типа Haskell приведен выше. Так же, как значения данных создаются с использованием конструкторов данных, значения типов создаются из конструкторов типов. ...
вопрос задан: 4 May 2015 20:12
0
ответов

Разница между логическим программированием и функциональным программированием

Я читал много статей, пытаясь понять разницу между функциональным и логическим программированием, но единственный вывод, который я смог сделать до сих пор, заключается в том, что логическое программирование определяет ...
вопрос задан: 1 May 2015 21:20
0
ответов

Почему вывод типа Scala не такой мощнее, чем у Haskell?

Механизм вывода типов в Haskell намного мощнее, чем в Scala. В Haskell мне редко приходится явно писать типы, тогда как в Scala типы могут выводиться только в выражениях, но не…
вопрос задан: 29 April 2015 19:18
0
ответов

Современное состояние дешевых операций со списками в Haskell?

Для дешевых операций, таких как добавление в списки (а не строки символов), я бы использовал Data.DList. Что меня сдерживает, так это то, что пакет на Hackage помечен как «экспериментальный», а последнее обновление было в 2009 году. ...
вопрос задан: 27 April 2015 16:23
0
ответов

Удаление дубликатов подстрок в строке в C #

Как удалить дубликаты подстрок в строке? так, например, если у меня есть строка типа smith: rodgers: кто-то: smith: white, то как мне получить новую строку, в которой удален дополнительный кузнец, например ...
вопрос задан: 21 April 2015 19:39
0
ответов

`Иначе` на Haskell - это синоним` _`?

Недавно я натолкнулся на фрагмент кода, который в противном случае использовал Haskell для сопоставления с образцом в списке. Это показалось мне странным, так как: ghci>: t в противном случае :: Bool Итак, я попробовал следующее: ghci & ...
вопрос задан: 16 April 2015 22:18
0
ответов

Как использовать wai- handler-devel с простым приложением wai

У меня есть базовая настройка приложения "hello world" с использованием wai, и я хотел бы использовать wai-handler-devel, но не знаю, как это сделать, и не могу найти никаких примеров его в использовании на вай-проекте. {- # ...
вопрос задан: 16 April 2015 10:33
0
ответов

Могу ли я получить «Cabal Install», чтобы использовать несколько ядер?

Кто-нибудь знает, как получить Cabal Unit для эксплуатации параллелизма? Я компилируюсь с GHC, и пока я не знаю, может ли сам GHC сделать параллельные сборки, наверняка Cabal Install может запустить несколько ...
вопрос задан: 26 March 2015 21:17
0
ответов

Параллельные сборки Cabal [дубликат]

Есть ли способ параллельной компиляции пакетов при использовании cabal install, аналогичный флагу -jN в GNU make?
вопрос задан: 26 March 2015 21:00
0
ответов

Поверните первый аргумент функции, чтобы он стал n-м

Для функции с как минимум n аргументов, я хочу повернуть первый аргумент, чтобы он стал n-м аргументом. Например (в нетипизированном лямбда-исчислении): r (λa. a) = λa. а r (λa. ...
вопрос задан: 11 March 2015 16:57
0
ответов

Как взломать GHCi (или Hugs), чтобы он печатает символы Unicode без экранирования?

Посмотрите на проблема: обычно в интерактивной среде Haskell нелатинские символы Unicode (которые составляют часть результатов) печатаются с экранированием, даже если языковой стандарт допускает такие символы (как ...
вопрос задан: 8 March 2015 11:59
0
ответов

Какова история имен переменных x и xs? [закрыто]

Я пытаюсь немного освоить Haskell, и я чередую трепет и недоумение. Одна из действительно отталкивающих вещей для меня, как бы банально это ни казалось, - это идиома сопоставления с образцом (x: xs). ...
вопрос задан: 6 March 2015 17:22
0
ответов

Монада Pause

Монады могут делать много удивительных, сумасшедших вещей. Они могут создавать переменные, содержащие суперпозицию значений. Они могут позволить вам получить доступ к данным из будущего до того, как вы их вычислите. Они могут позволить вам...
вопрос задан: 5 March 2015 09:40
0
ответов

Haskell Peano Numbers

Я пытаюсь напишите функцию toPeano :: Int -> Nat toPeano n =, которая превращает целое число в его число Пеано. У меня есть данные: data Nat = Zero | Succ Nat, производное Show Например, ...
вопрос задан: 23 February 2015 09:36
0
ответов

Зачем иметь отдельный модуль для типов?

Почему часто помещают определения классов и типов в специальный модуль Types вместо того, чтобы помещать их в соответствующее пространство имен? Например, давайте возьмем запись Config из исходного кода Yi. ...
вопрос задан: 16 February 2015 22:05
0
ответов

Что означает :: (двойное двоеточие) в Haskell?

Я вижу и использую символы :: везде, но до сих пор не знаю, что это за: : символ означает при программировании на Haskell, например: run :: Int -> Int -> Int - ?? Что означает :: (двойное двоеточие) в ...
вопрос задан: 10 February 2015 06:22