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

Функциональный язык программирования

6
Что именно делает систему типов Haskell столь уважаемой (скажем, Java)?
Я начинаю изучать Хаскель . Я очень новичок в этом, и я просто читаю пару онлайн-книг, чтобы разобраться с его основными конструкциями. Один из «мемов», о которых часто говорили знакомые с ним люди, - это целая вещь «если она скомпилируется, она будет работать», - я думаю, что это связано с …

2
Что такое шаблон «Свободная монада + переводчик»?
Я видел людей, говорящих о Free Monad с Interpreter , особенно в контексте доступа к данным. Что это за образец? Когда я мог бы хотеть использовать это? Как это работает, и как бы я это реализовал? Я понимаю (из сообщений , таких как это ) , что речь идет о …

4
Является ли система типов Haskell формально эквивалентной системе Java? [закрыто]
Я понимаю, что некоторые вещи проще / сложнее в одном языке, чем в другом, но меня интересуют только функции, связанные с типами, которые возможны в одном и невозможны / неактуальны в другом. Чтобы сделать его более конкретным, давайте проигнорируем расширения типов на Haskell, поскольку их так много, которые делают разные …

4
какова цель стрел?
Я изучаю программирование на языке Haskell и пытаюсь понять концепции, сначала поняв, зачем они мне нужны. Я хотел бы знать цель стрелок в функциональных языках программирования. Какую проблему они решают? Я проверил http://en.wikibooks.org/wiki/Haskell/Understanding_arrows и http://www.cse.chalmers.se/~rjmh/afp-arrows.pdf . Все, что я понимаю, - это то, что они используются для описания графиков для …

7
Как вы кодируете алгебраические типы данных в C # или Java-подобном языке?
Есть некоторые проблемы, которые легко решаются алгебраическими типами данных, например, тип List может быть очень кратко выражен как: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap f b) l = ConsCell 1 (ConsCell …

1
Как вы разрабатываете программы на Haskell или других функциональных языках программирования?
У меня есть некоторый опыт работы с объектно-ориентированными языками программирования, такими как c # или ruby. Я знаю, как проектировать программу в объектно-ориентированном стиле, как создавать классы и объекты и как определять отношения между ними. Я также знаю некоторые шаблоны дизайна. Как люди пишут функциональные программы? Как они начинаются? Существуют …

5
Есть ли недостатки или проблемы с Haskell?
Я смотрю на погружение в Haskell для моего следующего (относительно тривиального) личного проекта. Причины, по которым я занимаюсь Haskell: Получить мою голову на чисто функциональный язык Скорость. Хотя я уверен, что с этим можно поспорить, из-за того, что я видел гвозди на Haskell, близкие к C ++ (и, похоже, немного …
47 haskell 

5
Критика монады IO, рассматриваемой как государственная монада, действующая в мире
IOМонады в Haskell часто объясняется как государственной монады , где государство является мир. Таким образом, значение типа IO amonad рассматривается как нечто подобное worldState -> (a, worldState). Некоторое время назад я прочитал статью (или сообщение в блоге / списке рассылки), в которой критиковал это мнение и приводил несколько причин, по …

2
Почему (или почему нет) экзистенциальные типы считаются плохой практикой в ​​функциональном программировании?
Какие методы я мог бы использовать для последовательного рефакторинга кода, удаляя зависимость от экзистенциальных типов? Как правило, они используются, чтобы дисквалифицировать нежелательные конструкции вашего типа, а также разрешить потребление с минимальными знаниями о данном типе (или мое понимание таково). Кто-нибудь придумал простой последовательный способ убрать зависимость от них в коде, …

3
Каковы преимущества использования LISP и Haskell? Они сделают меня лучшим программистом? [закрыто]
Я знаю, что Lisp и Haskell являются логическими и функциональными языками программирования соответственно, но что именно это означает? Чем они отличаются от других языков? Я слышал, что их изучение сделает вас лучшим программистом и улучшит вашу логику. Это правда, и если я пойду изучать Lisp или Haskell на компетентный уровень, …
41 haskell  lisp 

7
Haskell и Lisp против Haskell или Lisp [закрыто]
В настоящее время я пишу код на C, C ++ и Python. Я хочу выбрать функциональный язык программирования, и сейчас я склоняюсь к Хаскеллу. Я НЕ хочу начинать здесь войну "Haskell vs Lisp"; что я хочу знать, так это: если я изучу Haskell, прежде всего, для ознакомления с функциональным программированием, …

2
Заблуждения о чисто функциональных языках?
Я часто сталкиваюсь со следующими утверждениями / аргументами: Чисто функциональные языки программирования не допускают побочных эффектов (и поэтому практически бесполезны, поскольку любая полезная программа имеет побочные эффекты, например, когда она взаимодействует с внешним миром). Чистые функциональные языки программирования не позволяют написать программу, которая поддерживает состояние (что делает программирование очень неудобным, …

2
Современные языки все еще используют генераторы парсеров?
Я исследовал о наборе компиляторов GCC на википедии здесь , когда это придумал: GCC начал использовать парсеры LALR, сгенерированные с помощью Bison, но постепенно переключился на рукописные парсеры с рекурсивным спуском; для C ++ в 2004 году и для C и Objective-C в 2006 году. В настоящее время все внешние …

5
«Доказательство - это программа; формула, которую он доказывает, является типом для программы »
Это может быть философский вопрос, но я считаю, что на него есть объективный ответ. Если вы читаете статью в Википедии о Haskell, вы можете найти следующее: Этот язык основан на наблюдениях Хаскелла Карри и его интеллектуальных потомков, что «доказательство - это программа; формула, которую он доказывает, - это тип для …
37 haskell 

7
Каковы функциональные эквиваленты операторов обязательного разрыва и других проверок цикла?
Допустим, у меня есть логика ниже. Как написать это в функциональном программировании? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Примеры в большинстве блогов, статей …

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