Какой язык функционального программирования я должен выбрать в качестве первого языка функционального программирования? [закрытый]

19
задан txxwq 23 August 2013 в 15:23
поделиться

9 ответов

Если ваша основная цель - работать с подростками, имеет смысл использовать функциональную язык педагогику и технологию, которая доказана работать с подростками, и это PLT схема ] (aka drscheme) с Как проектировать программы Книга (также бесплатно онлайн). Эти ребята получили отличные результаты из средней школы через 3-й семестр университета. У них есть ресурсы для учителей .

Многие респонденты, такие как SICP. Это замечательная книга - но не Узнать . Если вы уже знаете схему, это хорошая книга к Actire , но SICP меньше о функциональном программировании и более о том, как реализовать все известные интересные компьютерные идеи на схеме.

Если ваша основная цель состоит в том, чтобы узнать действительно новую парадигму программирования, то схема не хватает некоторых функций, которые очень важны для многих функциональных программистов:

  • Программирование с сопоставлением паттерна
  • Частичное применение функций Curred
  • Система статического типа
  • Чистые функциональные вычисления

Если вы хотите захватывающие идеи, попробуйте HASKELL ; Haskell делает для вас намного сложнее программировать свои старые мысли на новом языке. Вместо этого Haskell заставляет вас думать новые мысли. Помимо многих других ресурсов, Real World Haskell бесплатно онлайн.

Заключительное примечание: так было много подобных вопросов на функциональном программировании обучения.

10
ответ дан 30 November 2019 в 02:24
поделиться

I 'M Большой поклонник схемы, не в последнюю очередь, потому что лучшая книга на нее свободно доступна.

12
ответ дан 30 November 2019 в 02:24
поделиться

Поскольку вы уже знакомы с Python, почему бы просто не использовать его функциональные возможности? Подробнее см. в этом (черновике) HowTo .

0
ответ дан 30 November 2019 в 02:24
поделиться

Я попробую Scala. Это не чисто функционально, это позволяет использовать различные подходы - но большая часть ваших знаний Java должна портировать (это JVM), включая библиотеки JDK, и это один из самых передовых языков, которые я когда-либо видел.

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

7
ответ дан 30 November 2019 в 02:24
поделиться

SCALA и CLOJURE Обе запускают JVM, чтобы вы могли быть более знакомы с их средами.

8
ответ дан 30 November 2019 в 02:24
поделиться

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

0
ответ дан 30 November 2019 в 02:24
поделиться

Мой голос отправляется в Scala или F #, которые на данный момент свободно загружаются.

Преимущество вот в том, что они являются смешанными языками парадигмы - это функциональные языки, но вы также можете использовать императивное и объектно-ориентированное программирование. У них также есть большие стандартные библиотеки - Scala Rides на задней части Java и F # имеет все .NET, так что вы можете запрограммировать что-то интересное справедливо.

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

1
ответ дан 30 November 2019 в 02:24
поделиться

Если вы делаете это для обучения, то определенно схема с SICP . Это будет трудно и разочаровывать и взорвать ваш разум, если у вас нет опыта с этим материалом, но вы многое узнаете.

Если вы хотите использовать функциональное программирование на практике, то F #, Scala и Clojure стоит смотреть.

0
ответ дан 30 November 2019 в 02:24
поделиться

Я голосую за Haskell, который имеет следующие преимущества:

  • В Haskell простой случай на самом деле простой
  • Сложный случай (обычно ) по-прежнему понятен обычному человеческому разуму
  • Он имеет обычный синтаксис, который тоже не отличается от других нефункциональных языков программирования (в отличие, скажем, от Lisp)
17
ответ дан 30 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

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