В Haskell у нас есть возможность комбинировать ограничения на типы с логическим «и». Рассмотрим следующий тип И (a ::Ограничение )b = (a, b )или более сложный класс (a, b )=> И a...
Я пытаюсь использовать параллелизм в Haskell для конкретной оптимизации, в которой требуется только одно из двух значений, и в зависимости от ситуации одно из них может быть создано намного быстрее, чем другое ....
Вспомогательная функция объединения определяется как: join :: (Monad m) => m (ma) -> m a
join x = x >>= id Учитывая, что типом >>= является Monad m => ma -> (a -> mb) -> mb и id ...
Я читал об аппликативных функторах, особенно в «Функциональной жемчужине» Макбрайда и Патерсона. Но я хотел бы укрепить свое понимание, выполнив несколько упражнений. Я бы предпочел программирование...
В Network.Socket имеется тип необработанных сокетов, но рядом с привязкой сокетов есть комментарий "В настоящее время поддерживаются только сокеты домена Unix и семейства Internet". Как я могу использовать необработанные...
Я пытаюсь разобраться в Haskell с помощью онлайн-книги Learn you a Haskell во благо. Насколько мне известно, я был в состоянии понять монады до тех пор, пока не попал в главу, посвященную...
Я пытаюсь использовать Haskell для вычисления статистических сумм моделей в статистической физике. Это включает в себя обход довольно больших списков конфигураций и суммирование различных наблюдаемых, что я бы…
Пытаюсь решить проблему 23 из 99 проблем Haskell. И я написал это rnd_select::(Eq a) => [a] -> Int -> [a]
rnd_select [] _ = []
rnd_select _ 0 = []
rnd_select ys n = let (...
Я поискал в Интернете и не смог найти никаких объяснений CHI, которые не превращались бы быстро в лекцию по теории логики, которая совершенно непосильна для меня. (Эти люди говорят так, как будто «...
Что означает эта цитата? функтор списка представляет контекст недетерминированного выбора; В контексте функторов в функциональном программировании. Кажется, я понимаю, что Functor — это "...
Итак, я понимаю, что, вероятно, буду жалеть об этом всю оставшуюся жизнь, но... Как на самом деле работает Джинн? В документации сказано, что он использует алгоритм, который h является "расширением LJ" и...
Я часто собираю несколько значений в кортежи, так как считаю кортежи естественным типом для этого. Однако кортежи не являются строгими. Итак, рассмотрим данные A data B = B !A data C = C !(B, B) data...
В качестве примера предположим, что я хочу реализовать функцию, которая суммирует список чисел. На полпути к написанию кода я хочу отладить его с помощью модуля Debug.Trace:T, где import Debug.Trace dosum::(Num a)=&...
Что написано в заголовке. Если я напишу сигнатуру типа, возможно ли алгоритмически сгенерировать выражение, имеющее эту сигнатуру? Кажется правдоподобным, что это возможно сделать....
Скажем, я написал следующий удивительный фрагмент кода:func = do a <-Just 5 return a Это довольно бессмысленно, я знаю. Здесь a равно 5, а func возвращает Just 5. Теперь я переписываю свой удивительный (yet...
Мне нужно сделать таблицу с редактируемым столбцом. Каждая строка представляет собой отдельную запись. Я хочу иметь возможность отображать сотни записей, вносить в них изменения, а затем отправлять их обратно на сервер для...
Я пытался установить cabal-dev на свой Mac. После закрытия я попытался запустить ./bin/build. чтобы получить это сообщение об ошибке. cabal: невозможно настроить cabal-dev-0.9.1. Требуется MonadRandom == 0.1.*, tar
==0.3.*,...
Я хотел бы, чтобы моя программа командной строки на Haskell функционировала так :программа ждет ввода пользователя, пользователь что-то набирает, нажимает «ввод» Haskell обрабатывает ввод, показывает результат на стандартный вывод Haskell ждет...
Обратите внимание на вторую строку в этом сеансе GHCi. Что такого в типе Latitude, который позволяет мне использовать «голое» число в качестве значения вместо вызова конструктора? Я хотел бы кое-что сделать...
У меня очень странное поведение при чтении файлов из /proc Если я лениво читаю /proc/pid/stat с помощью prelude readFile -, это работает, но не так, как я хочу. Переключение на строгое чтение с помощью Data....
Я начинаю изучать язык программирования Scala. Я немного разбираюсь в языках FP, таких как Erlang и Haskell, и у меня есть сомнения по поводу значения выражения for/yield, например :for (arg <-...
Хорошо, я пытаюсь сделать функцию для определения, является ли список кортежей транзитивным, т.е. если (x,y)и (y,z)находятся в list, то (x,z)тоже есть в списке. Например, [(1,2), (2,3), (1,3)] равно...
Обновление: ответ г-на Немо помог решить проблему! Код ниже содержит исправление! См. вызовы nb False и nb True ниже. Существует также новый пакет Haskell под названием splice (, в котором есть OS-...
Допустим, у меня есть следующее:f ::a -> b -> c г ::б -> в g = f 10 Теперь предположим, что f на самом деле:fxy = f1 x + yWould:g `seq`... на самом деле оценивает f1 10, поэтому позже при запуске g 9...
(Для следующего упростите Show и Read to class Show a where show ::a -> String class Read a where read ::String -> a И предположим, что чтение никогда не завершается ошибкой. )Хорошо-известно, что можно...
На веб-сайте Haskell есть пример реализации быстрой сортировки: quicksort :: Ord a => [a] -> [a]
быстрая сортировка [] = []
быстрая сортировка (p:xs) = (быстрая сортировка по меньшему) ++ [p] ++ (быстрая сортировка по большему)
...
Стандартные-классы типов библиотеки Haskell MonadPlus, Alternative и Monoid предоставляют по два метода с практически одинаковой семантикой:Пустое значение:mzero, empty или mempty. Оператор a ->...
par объявляется как :par ::a -> b -> b Обратите внимание, первый аргумент отбрасывается. Чтобы использовать par, вам нужно придумывать трюки, например использовать одно и то же выражение несколько раз. Если его цель...
Как добавить проверки ввода в конструкторы данных Haskell? Допустим, у меня есть данные импорта Data.Time.Calendar SchedulePeriod = SchedulePeriod {startDate :: Day, endDate :: Day, accrualStart :: ...