Функциональное программирование: Лучшая Платформа/Среда [закрывается]

Согласно дубликату, который я прокомментировал, вы должны попробовать:

class IsAtLeastOneElementList extends ArgumentMatcher<List<String>> {
    public boolean matches(Object list) {
        return ((List) list).size() > 0;
    }
}
12
задан Lawrence Dol 2 November 2008 в 01:28
поделиться

9 ответов

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

Когда Вы удовлетворены тем, что Вы изучили от Haskell (который будет много!), Вы установлены выйти и оценить более либеральные функциональные языки как Clojure или Scala. Или можно остаться с Haskell, ситуация библиотеки которого не на самом деле все это плохо, также. В той точке это - вопрос обстоятельства и персонального предпочтения. Но для совершения такого выбора, учась, как думать “чистым” функциональным способом, сначала, я думаю, жизненно важный.

11
ответ дан 2 December 2019 в 03:06
поделиться

Выезд F#. CLR имеет .tail инструкцию, таким образом, можно написать код F# с последними вызовами, которые не вызывают StackOverflow (исключение, не веб-сайт). Вот вводное видео о F# от PDC.

12
ответ дан 2 December 2019 в 03:06
поделиться

Я рекомендую Схему PLT и SICP. Язык так прост, что можно добраться до важных понятий очень быстро.

7
ответ дан 2 December 2019 в 03:06
поделиться

Никаким путем не является Scala, собирающийся изогнуть Ваш ум в какой-либо степени так, как Haskell будет. Главная причина выбрать Scala over Haskell при изучении FP состоит в том, чтобы дать себе более нежное введение в опасные дебри монад, функторов и совершенства высшего порядка. Scala является великим, если Вы происходите из объектно-ориентированной среды, пытающейся переходить то знание в функциональную землю. Не настолько замечательно, если Вы хотите просто погрузиться головой вперед в глубину.

Учитывая то, что Вы спрашиваете, я рекомендовал бы Haskell GHC. Ничто не собирается деформировать Вашу голову вполне так очень.:-) После этих слов, хотя, я думаю, что необходимо все еще следить за Scala. Существует много аспектов языка, которые являются положительно специфическими, особенно его система типов (structural+nominal выделяющий подтипы == сладкий). Это не собирается повреждать Вашу голову вполне так как Haskell, но это даст Вам понимание некоторых понятий, которые Вы не можете найти больше нигде, особенно так называемое "typeful программирование" методологии.

О, и ответить на вторую часть Вашего вопроса (FP по сравнению с OO в Scala), я склонен писать свой код в функциональном стиле в объектно-ориентированной платформе. Немного трудно описать, но это - способ, которым это. Думайте о нем как разработка API с объектно-ориентированной точки зрения, но реализации всего в функциональном стиле. Я сохраняю вещи неизменными и провожу много времени с помощью методов высшего порядка, но я делаю все это в рамках ограничений наследования и стандартного номинального выделения подтипов. Время от времени я все еще запишу что-то обязательное, но только когда это будет более чисто, чтобы сделать так, чем использовать функциональный стиль.

6
ответ дан 2 December 2019 в 03:06
поделиться

Другими словами, Haskell бросит вызов моим предвзятым мнениям тяжелее и быстрее, чем Scala?

Да.

Если Вы действительно хотите учиться, добраться далеко вне Вашей зоны комфорта.

Вы действительно собираетесь использовать Scala для производственного кода за следующие 3 месяца, так или иначе?

5
ответ дан 2 December 2019 в 03:06
поделиться

Также взгляд на Clojure.

5
ответ дан 2 December 2019 в 03:06
поделиться

Взгляд на Scala. Это предназначается для JVM, взаимодействует с Java и имеет много современных функций функционального программирования.

3
ответ дан 2 December 2019 в 03:06
поделиться

когда-нибудь испытанный Пролог?... это будет

?- bend(your_mind).
Yes


?- bend(X).
X = your_mind

Это дало мне совершенно новую перспективу так или иначе... много информация там

0
ответ дан 2 December 2019 в 03:06
поделиться

Я люблю использовать Haskell и GHC. GHC включает интерактивный интерпретатор (GHCI) и имеет замечательно полезные сообщения об ошибках. Плюс Haskell один из лучших примеров действительно функционального языка, и не слишком плохо использовать, после того как Вы экспериментируете с ним немного. Плюс он имеет потрясающую систему типов.

3
ответ дан 2 December 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: