Вопросы с тегом «haskell»

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

3
Упорядочивание параметров для использования каррирования
Я дважды недавно реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flipили \x -> foo bar x 42происходили. Какие принципы помогут мне лучше всего использовать каррирование при разработке сигнатуры функции?


9
Как работают языки функционального программирования?
Если языки функционального программирования не могут сохранять какое-либо состояние, как они делают простые вещи, такие как чтение ввода от пользователя? Как они «хранят» ввод (или хранят какие-либо данные в этом отношении?) Например: как эта простая вещь C может быть переведена на функциональный язык программирования, такой как Haskell? #include<stdio.h> int main() …

3
Разница между состоянием, ST, IORef и MVar
Я работаю над написанием схемы за 48 часов (у меня около 85 часов), и я дошел до части о добавлении переменных и назначений . В этой главе есть большой концептуальный скачок, и я бы хотел, чтобы он был сделан в два этапа с хорошим рефакторингом между ними, а не сразу …

3
mtl, трансформаторы, monads-fd, monadLib и парадокс выбора
В Hackage есть несколько пакетов для преобразователей монад: mtl : библиотека преобразователей монад трансформаторы : Конкретный функтор и монадные трансформаторы monads-fd : классы монад, использующие функциональные зависимости monads-tf : классы монад, использующие семейства типов monadLib : Коллекция преобразователей монад. mtl-tf : библиотека преобразователей монад, использующая семейства типов. mmtl : Модульная …

4
Возведение в степень в Haskell
Может кто-нибудь сказать мне, почему Haskell Prelude определяет две отдельные функции для возведения в степень (т.е. ^и **)? Я думал, что система типов должна исключить такое дублирование. Prelude> 2^2 4 Prelude> 4**0.5 2.0

3
Как работает этот запутанный код Haskell?
Читая https://en.uncyclopedia.co/wiki/Haskell (и игнорируя все «оскорбительные» вещи), я наткнулся на следующий фрагмент запутанного кода: fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1 Когда я запускаю этот фрагмент кода ghci(после импорта Data.Functionи Control.Applicative), ghciраспечатывает список всех степеней двойки. Как работает этот фрагмент кода?
90 haskell 

15
Напишите интерпретатор Haskell на Haskell
Классическим упражнением в программировании является написание интерпретатора Lisp / Scheme на Lisp / Scheme. Возможности полного языка можно использовать для создания интерпретатора для подмножества языка. Есть ли подобное упражнение для Haskell? Я хотел бы реализовать подмножество Haskell, используя Haskell в качестве движка. Конечно, это можно сделать, но есть ли какие-нибудь …

2
Параллельный mapM на массивах Repa
В своей недавней работе с Gibbs sampling, я делал большую пользу из RVarкоторых, на мой взгляд, обеспечивает почти идеальный интерфейс для генерации случайных чисел. К сожалению, мне не удалось использовать Repa из-за невозможности использовать монадические действия на картах. Хотя очевидно, что монадические карты не могут быть распараллелены в целом, мне …

3
Каков статус текущих реализаций функционального реактивного программирования?
Я пытаюсь визуализировать некоторые простые автоматические физические системы (такие как маятник, манипуляторы и т. Д.) В Haskell. Часто эти системы можно описать уравнениями типа df/dt = c*f(t) + u(t) где u(t)представляет собой своего рода «интеллектуальное управление». Эти системы очень хорошо вписываются в парадигму функционального реактивного программирования. Итак, я взял книгу …

8
Каковы точки строгости Haskell?
Все мы знаем (или должны знать), что Haskell по умолчанию ленив. Ничего не оценивается до тех пор, пока не будет оценено. Итак, когда нужно что-то оценивать? Есть моменты, в которых Haskell должен быть строгим. Я называю это «точками строгости», хотя этот конкретный термин не так широко распространен, как я думал. …

4
Есть ли в Haskell хвостовая рекурсивная оптимизация?
Сегодня я обнаружил команду time в unix и подумал, что буду использовать ее, чтобы проверить разницу во времени выполнения между хвостовой рекурсивной и нормальной рекурсивной функцией в Haskell. Я написал следующие функции: --tail recursive fac :: (Integral a) => a -> a fac x = fac' x 1 where fac' …

5
Что плохого в Lazy I / O?
Обычно я слышал, что производственный код не должен использовать ленивый ввод-вывод. У меня вопрос, почему? Можно ли когда-нибудь использовать ленивый ввод-вывод вне игры? И что делает альтернативы (например, счетчики) лучше?

7
Почему проще написать компилятор на функциональном языке? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 2 года назад . Уточните этот вопрос Я очень долго думал над этим …

5
Когда полезны высшие родственные типы?
Некоторое время я занимаюсь разработкой на F #, и мне это нравится. Однако одного модного слова, которого, как мне известно, не существует в F #, является высокодородные типы. Я читал материал о высокородных типах и думаю, что понимаю их определение. Я просто не знаю, почему они полезны. Может ли кто-нибудь …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.