0
ответов

Как я могу объединить два ограничения типа с логическим или в Haskell?

В Haskell у нас есть возможность комбинировать ограничения на типы с логическим «и». Рассмотрим следующий тип И (a ::Ограничение )b = (a, b )или более сложный класс (a, b )=> И a...
вопрос задан: 21 April 2012 01:23
0
ответов

Параллелизм в Haskell - действительно ли forkIO недетерминирован?

Я пытаюсь использовать параллелизм в Haskell для конкретной оптимизации, в которой требуется только одно из двух значений, и в зависимости от ситуации одно из них может быть создано намного быстрее, чем другое ....
вопрос задан: 21 April 2012 00:52
0
ответов

Какая системная магия типа Haskell позволяет определять соединение?

Вспомогательная функция объединения определяется как: join :: (Monad m) => m (ma) -> m a join x = x >>= id Учитывая, что типом >>= является Monad m => ma -> (a -> mb) -> mb и id ...
вопрос задан: 20 April 2012 20:58
0
ответов

Где найти упражнения по программированию для аппликативных функторов?

Я читал об аппликативных функторах, особенно в «Функциональной жемчужине» Макбрайда и Патерсона. Но я хотел бы укрепить свое понимание, выполнив несколько упражнений. Я бы предпочел программирование...
вопрос задан: 20 April 2012 02:55
0
ответов

Необработанные сокеты в Haskell

В Network.Socket имеется тип необработанных сокетов, но рядом с привязкой сокетов есть комментарий "В настоящее время поддерживаются только сокеты домена Unix и семейства Internet". Как я могу использовать необработанные...
вопрос задан: 19 April 2012 18:00
0
ответов

Путаница по поводу кода State Monad в «Learn you a Haskell»

Я пытаюсь разобраться в Haskell с помощью онлайн-книги Learn you a Haskell во благо. Насколько мне известно, я был в состоянии понять монады до тех пор, пока не попал в главу, посвященную...
вопрос задан: 19 April 2012 17:10
0
ответов

Haskell: настройка производительности списка/вектора/массива

Я пытаюсь использовать Haskell для вычисления статистических сумм моделей в статистической физике. Это включает в себя обход довольно больших списков конфигураций и суммирование различных наблюдаемых, что я бы…
вопрос задан: 19 April 2012 13:19
0
ответов

Как использовать newStdGen или getStdGen вместо mkStdGen в Haskell

Пытаюсь решить проблему 23 из 99 проблем Haskell. И я написал это rnd_select::(Eq a) => [a] -> Int -> [a] rnd_select [] _ ​​= [] rnd_select _ 0 = [] rnd_select ys n = let (...
вопрос задан: 19 April 2012 01:33
0
ответов

Изоморфизм Карри-Ховарда

Я поискал в Интернете и не смог найти никаких объяснений CHI, которые не превращались бы быстро в лекцию по теории логики, которая совершенно непосильна для меня. (Эти люди говорят так, как будто «...
вопрос задан: 18 April 2012 23:58
0
ответов

Почему функтор списка представляет контекст недетерминированного выбора?

Что означает эта цитата? функтор списка представляет контекст недетерминированного выбора; В контексте функторов в функциональном программировании. Кажется, я понимаю, что Functor — это "...
вопрос задан: 18 April 2012 21:11
0
ответов

Как работает Джинн

Итак, я понимаю, что, вероятно, буду жалеть об этом всю оставшуюся жизнь, но... Как на самом деле работает Джинн? В документации сказано, что он использует алгоритм, который h является "расширением LJ" и...
вопрос задан: 18 April 2012 21:08
0
ответов

Вложенные UNPACK в GHC

Я часто собираю несколько значений в кортежи, так как считаю кортежи естественным типом для этого. Однако кортежи не являются строгими. Итак, рассмотрим данные A data B = B !A data C = C !(B, B) data...
вопрос задан: 18 April 2012 20:46
0
ответов

Можно ли принудительно преобразовать тип в класс в Haskell?

В качестве примера предположим, что я хочу реализовать функцию, которая суммирует список чисел. На полпути к написанию кода я хочу отладить его с помощью модуля Debug.Trace:T, где import Debug.Trace dosum::(Num a)=&...
вопрос задан: 18 April 2012 14:34
0
ответов

Можно ли сгенерировать код автоматически, учитывая сигнатуру типа Haskell?

Что написано в заголовке. Если я напишу сигнатуру типа, возможно ли алгоритмически сгенерировать выражение, имеющее эту сигнатуру? Кажется правдоподобным, что это возможно сделать....
вопрос задан: 18 April 2012 08:39
0
ответов

«<-» и связанные значения

Скажем, я написал следующий удивительный фрагмент кода:func = do a <-Just 5 return a Это довольно бессмысленно, я знаю. Здесь a равно 5, а func возвращает Just 5. Теперь я переписываю свой удивительный (yet...
вопрос задан: 18 April 2012 07:32
0
ответов

Редактируемая таблица Yesod

Мне нужно сделать таблицу с редактируемым столбцом. Каждая строка представляет собой отдельную запись. Я хочу иметь возможность отображать сотни записей, вносить в них изменения, а затем отправлять их обратно на сервер для...
вопрос задан: 17 April 2012 19:26
0
ответов

установка зависимостей в haskell

Я пытался установить cabal-dev на свой Mac. После закрытия я попытался запустить ./bin/build. чтобы получить это сообщение об ошибке. cabal: невозможно настроить cabal-dev-0.9.1. Требуется MonadRandom == 0.1.*, tar ==0.3.*,...
вопрос задан: 17 April 2012 17:59
0
ответов

Как бесконечно читать и обрабатывать пользовательский ввод в Haskell

Я хотел бы, чтобы моя программа командной строки на Haskell функционировала так :программа ждет ввода пользователя, пользователь что-то набирает, нажимает «ввод» Haskell обрабатывает ввод, показывает результат на стандартный вывод Haskell ждет...
вопрос задан: 17 April 2012 16:28
0
ответов

Присвоение «голых» номеров новым типам

Обратите внимание на вторую строку в этом сеансе GHCi. Что такого в типе Latitude, который позволяет мне использовать «голое» число в качестве значения вместо вызова конструктора? Я хотел бы кое-что сделать...
вопрос задан: 17 April 2012 13:05
0
ответов

Haskell:Чтение из /proc. Проблемы со строгостью и ленью. Статистика процесса

У меня очень странное поведение при чтении файлов из /proc Если я лениво читаю /proc/pid/stat с помощью prelude readFile -, это работает, но не так, как я хочу. Переключение на строгое чтение с помощью Data....
вопрос задан: 17 April 2012 05:08
0
ответов

'доходность' в Scala эквивалентно функции карты?

Я начинаю изучать язык программирования Scala. Я немного разбираюсь в языках FP, таких как Erlang и Haskell, и у меня есть сомнения по поводу значения выражения for/yield, например :for (arg <-...
вопрос задан: 16 April 2012 22:30
0
ответов

'унификация' в списках

Хорошо, я пытаюсь сделать функцию для определения, является ли список кортежей транзитивным, т.е. если (x,y)и (y,z)находятся в list, то (x,z)тоже есть в списке. Например, [(1,2), (2,3), (1,3)] равно...
вопрос задан: 16 April 2012 17:09
0
ответов

Использование системного вызова GNU/Linux `splice` для передачи данных из сокета в сокет с нулевым копированием в Haskell

Обновление: ответ г-на Немо помог решить проблему! Код ниже содержит исправление! См. вызовы nb False и nb True ниже. Существует также новый пакет Haskell под названием splice (, в котором есть OS-...
вопрос задан: 16 April 2012 13:17
0
ответов

`seq` для частично примененных функций

Допустим, у меня есть следующее:f ::a -> b -> c г ::б -> в g = f 10 Теперь предположим, что f на самом деле:fxy = f1 x + yWould:g `seq`... на самом деле оценивает f1 10, поэтому позже при запуске g 9...
вопрос задан: 16 April 2012 08:03
0
ответов

Ленивые и полиморфные значения

(Для следующего упростите Show и Read to class Show a where show ::a -> String class Read a where read ::String -> a И предположим, что чтение никогда не завершается ошибкой. )Хорошо-известно, что можно...
вопрос задан: 16 April 2012 06:17
0
ответов

Как работает быстрая сортировка в Haskell?

На веб-сайте Haskell есть пример реализации быстрой сортировки: quicksort :: Ord a => [a] -> [a] быстрая сортировка [] = [] быстрая сортировка (p:xs) = (быстрая сортировка по меньшему) ++ [p] ++ (быстрая сортировка по большему) ...
вопрос задан: 16 April 2012 02:56
0
ответов

Различие между классами типов MonadPlus, Alternative и Monoid?

Стандартные-классы типов библиотеки Haskell MonadPlus, Alternative и Monoid предоставляют по два метода с практически одинаковой семантикой:Пустое значение:mzero, empty или mempty. Оператор a ->...
вопрос задан: 16 April 2012 02:06
0
ответов

Haskell:Почему `par` был определен именно так?

par объявляется как :par ::a -> b -> b Обратите внимание, первый аргумент отбрасывается. Чтобы использовать par, вам нужно придумывать трюки, например использовать одно и то же выражение несколько раз. Если его цель...
вопрос задан: 15 April 2012 22:28
0
ответов

Проверка ввода в конструкторах данных Haskell

Как добавить проверки ввода в конструкторы данных Haskell? Допустим, у меня есть данные импорта Data.Time.Calendar SchedulePeriod = SchedulePeriod {startDate :: Day, endDate :: Day, accrualStart :: ...
вопрос задан: 15 April 2012 20:52
0
ответов

Как уменьшить дублирование в полях build-depends файла.cabal?

Вот файл.cabal:Имя:myprogram Версия:0.1 --бла-бла-бла Cabal-версия:>=1.9.2 Исполняемый файл myprogram HS-source-dirs:src Main-is:...
вопрос задан: 15 April 2012 17:38