LINUX.ORG.RU

тупо читать дискретную математику?

Зачем тупо? Можно с умом читать.

provaton ★★★★★
()

С чего начать знакомство с lambda

С полного отказа от использования циклов for/while во имя функционального обхода (fold, map, filter, ...) и рекурсий.

shahid ★★★★★
()

Это ты в контексте языков программирования? Тогда там ничего сложного нет, просто неименованная функция. Возможно, будет полезно ознакомиться с понятиями «Higher-Order Function» и «First-Class Citizen».

Если тебя интересует лямбда-исчисление, то кури соответствующую литературу.

theNamelessOne ★★★★★
()

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

Absurd ★★★
()

Изучи erlang. Маленький язык, но показывает всю мощь функциональщины и лямбд в частности.

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

Я просто наткнулся на документы по лямбде и там было как то очень сурово. И решил не быть полных лохом и узнать больше о них.

Я сейчас понял что возможно я путаю лямбду в программирование с лямбдой в «науке».

Trieforce
() автор топика

Если бы на ЛОР проводился конкурс на самый странный тред, ты был бы в призерах. Тут даже троллям делать нечего, слишком тонко.

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

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

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

Вот, да, TCу должно быть достаточно прожевать первую треть, там где SML. (дальше я сам не смотрел)

fmap
()
Ответ на: комментарий от Trieforce

В питоне ключевое слово lambda - это анонимная функция. Типичный пример.

a = [1 2 3 4]
a = list(map(lambda x: x*2, a))
BattleCoder ★★★★★
()

попробуй просто на практике. Запусти octave и сделай

quad(@(x) 2*sin(x),0,1)
вот тебе лямбда функция в виде sin(x). В то вермя как quad() рассчитан на принятие _имени_ объявленной функции.

То есть без лямбд надо было бы так:

function retval=f(x)
   retval=2*sin(x);
end

quad(@f,0,1)

потом можешь заглянуть в мой тред говорите, можно это сделать на C? Хаха!!. я сам не понимал профита, пока не наткнулся на практике на то, где они чуть ли не необходимы.

Короче - не парься. Лямбды сами тебя найдут.

dikiy ★★☆☆☆
()

Скажи, что конкретно непонятно. Это только в постах про хаскель на хабре все сложно, на самом же деле лямбды - это очень удобно, компакто и просто. Ну, если знать, где применять. Просто пиши сюда или google://$LANGUAGE_OF_CHOICE lambdas

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

Ага. Вся функциональная обвязка реализована в основном обычными циклами, в крайнем случае - заоптимизированной хвостовой рекурсией. Дизайнеры языка не могут позволить себе допустить возможность вываливания какого-нибудь map с переполнением стека только потому, что под капотом тоже все должно быть функциональным.

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

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