LINUX.ORG.RU

Python & lambda


0

0

Лямбда функции пришли в Python из языка Lisp и могут показаться необычными программисту на Си. Лямбда функции – это небольшие функции, которые создают другие функции, на своей основе. Чтобы быть более понятным, приведу такой пример: lambda a, b: a+b – вычисляет сумму двух своих аргументов. На основе функции, возвращающей lambda можно построить другие функции, например: >>> def make_incrementor(n): ... return lambda x: x + n#x – параметр, который передаётся в порождённую функцию f(x) ... >>> f = make_incrementor(42) >>> f(0) 42 >>> f(1) 43

1) А зачем оно надо? Есть примеры, где без этого никак?

2) Perl & Python - функциональные языки?

anonymous

Ну функциональные парсеры например.

anonymous
()

лямбда функции -- это анонимные функции, создавать на своей основе они никого не обязаны 1) примеров где без этого никак _нет_. но это повышает читабельность программы (особливо для тех кто к этому привык) 2) нет. это императивыные языки с элементами ФП

anonymous
()

Ну бывает удобно создать анонимную функцию прямо в месте её использования. Например при программировании графического интерфейса в каком-нибудь Bind в качестве callback использовать lambda

sigill
()

>- функциональные языки?

по идее ф-ый язык это тот, в котором при вызове функций с одинаковыми параметрами, всегда получишь одинаковые результаты. I/O ясное дело обламывается :(

Pi ★★★★★
()
Ответ на: комментарий от Pi

это называется чистый(pure) функциональный язык и функции без побочного эффекта.

btw, IO в хаскеле присутствует, хотя он заявляется, как чистый язык фп.

hateful_dead
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.