Questions tagged [haskell]

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

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

156 questions
5
votes
3 answers

Предподготовка к изучению функционального программирования и Haskell. Книги, статьи, советы

Решил для себя, что пришло время окунуться в мир функционального программирования и попробовать изучить язык Haskell. Я уже немало наслышан про функциональное программирование, про его высокий порог входа. Наслышан, что есть проблемы к…
Goran
  • 101
4
votes
1 answer

Как распечатать чистое лямбда-выражение в Haskell (в ghci)?

Например я пишу (\x y -> x) (\x -> x) 12 и чтоб распечатал буквально (\x->x) (и не тип T->T (пробовал через :t)) Чтоб не писал "No instance for (Show..." и чтоб распечатывал любую анонимную функцию, независимо от сигнатуры. То есть, чтобы можно было…
asianirish
  • 2,864
4
votes
3 answers

Поэлементный вывод списка на экран

Хотелось бы понять, можно ли в Haskell каким-то образом вывести список на экран поэлементно, то бишь аналог такого кода на Java for(String s: string_array){ System.out.println(s); } Почитал книжки - нашел следующее решение: printList list = case…
3
votes
3 answers

Округление до 2 знаков после запятой Haskell

Недавно начал пробовать Haskell на примере маленьких задачек - хеллоуворлдов. Сама задача состоит в том, что нужно посчитать некоторое выражение при разных x - ничего сложного. Но для красоты решил округлить ответ до 2 знаков после запятой и тут…
user200141
  • 1,037
3
votes
1 answer

Реализовать алгоритм по автоматам на Хаскеле

Мне нужно проверить, допускает ли автомат слово, которое состоит из одинаковых символов. Если хотя бы одно такое есть, то нужно вывести его, если нет - вывести "NO". Для каждого символа из входного алфавита мы запускаем поиск, и если мы пришли в…
user435351
  • 57
  • 4
3
votes
2 answers

Сложение цифр числа. Количество цифр в числе

Только начал изучать haskell. В задаче требуется вывести двухэлементный кортеж, в котором первый элемент - это сумма цифр числа, а второй - количество цифр в числе. Кое-что написал, но не работает - компилятор выводит много ошибок связанных с типами…
2
votes
1 answer

Парсер S-выражений

Написал урезанный парсер S-выражений, вот код: data Val = Int Integer | Float Double | String String | Symbol String | List [Val] deriving (Show) -- blah blah blah tList = do char '(' list <-…
hamstertamer
  • 101
  • 1
  • 3
  • 14
2
votes
0 answers

Haskell, Editline, segfault

Пишу программу, которая использует библиотеку Editline. Код примерно таков: import System.Console.Editline.Readline (initialize, readline, addHistory) import Control.Monad (forever) -- тут все остальное main = do initialize forever $ do…
hamstertamer
  • 101
  • 1
  • 3
  • 14
2
votes
2 answers

Почему IO имеет побочный эффект

Сразу скажу, Haskell пока не изучал. Просто читал о нем, и насколько понял, чистые функции - те которые не изменяют глобального состояния. А что изменяет IO? Просто ведь выводит сообщение.
2
votes
1 answer

Возможно ли в своем типе данных объявить поле-функцию, которая автоматически применяет в качестве параметра другое поле этого типа

Например, имеется следующий тип данных: data AnalogImpuls = AnalogImpuls{ amplitude :: Float, fade_function :: Float -> Float -> Float } Существует ли возможность слелать поле…
2
votes
2 answers

Определённый интеграл методом трапеции

Помогите, пожалуйста. Я полный новичок в хаскеле, учу его меньше недели. Есть задание: «Реализуйте функцию, находящую значение определённого интеграла от заданной функции f на заданном интервале [a,b] методом трапеций. (Используйте равномерную…
sonare
  • 21
2
votes
1 answer

Автоматически инициализировать составной тип данных нулями

Здравствуйте! Есть составной тип данный MemberStat, в нем может быть много полей. Мне нужно инициализировать все поля данного типа нулями. data MembersStat = MembersStat { hiddenStat ,deactivatedStat …
2
votes
2 answers

Failed test #1. Run time error: main: <>

Условие: реализуйте функцию seqA, находящую элементы следующей рекуррентной последовательности a_0 = 1; a_1 = 2 ; a_2 = 3; a_{k+3} = a_{k+2} + a_{k+1} - 2 a_{k} Код: seqA :: Integer -> Integer seqA n | n == 0 = 1 | n == 1 = 2 | n == 2 =…
anon
  • 21
2
votes
2 answers

Как из списка точек получить два списка координат?

Имея набор точек X, Y на новых линиях строки, как короче всего получить два списка X и Y отдельно? Или, что то же - имея 1 список, как получить два списка с элементами на чётных и нечётных позициях? "1 2\n3 4\n" -> [[1, 3], [2, 4]] [1, 2, 3, 4] ->…
sram
  • 33
2
votes
1 answer

Работа свертки функций в haskell

Всем доброго времени суток! Я недавно начала изучать функциональное программирование в haskell. И теперь у меня возник вопрос, как работает свертка функций (fold). Пытаюсь ее осознать, но никак не выходит. Желательно прямо подробное объяснение с…
Fire13nyu
  • 163
1
2 3 4 5