Для новичка, желающего изучить теоретические основы, предложение Данбена о книге Пирса непобедимо.
Но из списка, который вы даете, звучит так, как будто вы знаете, как эффективно программировать с первоклассными значениями функций , что lambda
оценивает. Вы не получите этот опыт, информацию или интуицию в не зависящем от языка пакете. Хуже того, в реальных языках многие анонимные функции создаются с помощью частичного применения функций Curried , а не с помощью явных lambda
; большинство людей используют первоклассные функции, которые считают лямбды довольно раздражающими и трудными для чтения.
Имея это в качестве фона, вот два совета:
Если вы не знаете, что такое lambda
, сделайте что-нибудь со Схемой. Программисты любят первоклассные функции, а обозначения Схемы навязывают программисту больше явных лямбд, чем во многих других функциональных языках.
Будучи новичком, вам, возможно, будет лучше узнать, почему люди хотят использовать эти первоклассные функции для начала. В этом случае прочитайте Почему функциональное программирование имеет значение Джона Хьюза. В статье Хьюза используется обозначение, которое несколько не зависит от языка; это не обозначение какого-либо популярного в настоящее время языка, но оно несколько похоже на Caml, F #, Haskell и ML.