Tag: haskell

Удаление дубликатов из списка в Haskell

Я пытаюсь определить функцию, которая удалит дубликаты из списка. Пока у меня есть рабочая реализация: rmdups :: Eq a => [a] -> [a] rmdups [] = [] rmdups (x:xs) | x `elem` xs = rmdups xs | otherwise = x : rmdups xs Однако я бы хотел переработать это без использования elem . Какой был […]

Как преобразовать список в кортеж в Haskell?

Как лучше всего преобразовать список в кортеж в Haskell: [1,2,3,4,5,6] -> (1,2,3,4,5,6)

Связь между Java и Haskell

Я googled и получил некоторые ответы, что связь между Java и Haskell может быть выполнена GCJNI (теперь сайт не работает) и LambdaVM .. Чтобы использовать LambdaVM / GCJNI, нужно ли мне загружать любые инструменты сборки? Где я могу узнать больше о них, так как я не нашел много ресурсов в Интернете? Я хочу разработать приложение, […]

Имеет ли Haskell переменные?

Я часто слышал утверждения о том, что у Haskell нет переменных; в частности, этот ответ утверждает, что он этого не делает, и его поддержали не менее девяти раз и приняли. Так что это переменные или нет, и почему? Этот вопрос также, по-видимому, применяется для ML, F #, OCaml, Erlang, Oz, Lava и всех промежуточных языков […]

Haskell GHC: какова временная сложность совпадения шаблона с конструкторами N?

Допустим, у нас есть следующий Haskell: data T = T0 | T1 | T2 | … | TN toInt :: T -> Int toInt t = case t of T0 -> 0 T1 -> 1 T2 -> 2 … TN -> N Какой алгоритм используется для выполнения шаблона здесь? Я вижу два варианта: (1) Линейный […]

Есть ли список расширений GHC, которые считаются «безопасными»?

Иногда часть кода, которую я хочу написать, не является законной без хотя бы одного расширения языка. Это особенно актуально, когда вы пытаетесь внедрить идеи в исследовательские документы, которые, как правило, используют ту, какая быстрая, сверхдлинная версия GHC была доступна в то время, когда была написана статья, не давая понять, какие расширения действительно требуются. В результате […]

Обработка инкрементного моделирования данных Изменения в функциональном программировании

Большинство проблем, которые я должен решить в своей работе в качестве разработчика, имеют отношение к моделированию данных. Например, в мире веб-приложений OOP мне часто приходится изменять свойства данных, которые находятся в объекте для удовлетворения новых требований. Если мне повезет, мне даже не нужно программно добавлять новый код поведения (функции, методы). Вместо этого я могу декларативно […]

Объяснение «привязка узла»

Читая материал, связанный с Хаскелем, я иногда сталкиваюсь с выражением «связывание узла», я думаю, что понимаю, что он делает, но не так. Итак, есть ли хорошие, простые и простые для понимания объяснения этой концепции?

Оператор Dot в Haskell: нужно больше объяснений

Я пытаюсь понять, что делает оператор точки в этом коде Haskell: sumEuler = sum . (map euler) . mkList Весь исходный код приведен ниже. Мое понимание Оператор точки принимает две функции sum и результат map euler а результат mkList как вход. Но, sum не является функцией, она является аргументом функции, правильно? и так, что здесь […]

Когда разница между quotRem и divMod полезна?

Из отчета haskell: Методы classа quot, rem, div и mod удовлетворяют этим законам, если y отличен от нуля: (x `quot` y)*y + (x `rem` y) == x (x `div` y)*y + (x `mod` y) == x – это целочисленное деление, усеченное к нулю, а результат div усечен в сторону отрицательной бесконечности. Например: Prelude> (-12) `quot` […]

Давайте будем гением компьютера.