Как стать автором
Обновить

Комментарии 9

Не понимаю я моду на лямбда выражения! с linq было еще понятнее! А щас с лямбдами и анонимными методами творится такое что, а давайте я напишу мега крутой интеллектуальный код! Да простят меня хейтеры!
Ох уж этот Чёрч! Ввел моду на лямба-исчисление! Вот до 1936 года было только linq и было все понятно, а теперь все пишут интеллектуальный код! :)
Лично меня больше огорчает отсутствие ключевого слово lambda для лямбд в Rust. Для функций есть fn, а для лямбды — нету. Нечестно как-то.
И глазами, мне кажется, читалось бы легче.
И был бы это вариант питона. И пришлось бы для использования лямбд писать длинющее ключевое слово, так что ФП превратилось бы в боль, а потом его постоянно везде читать. И стал бы lambda выглядеть lamba код на расте lambda примерно вот так lambda lambda lambda. И плакали ли бы мы кровавыми слезами каждый раз при чтении функциональных конвейеров из map/filter/and_then.

Нет, спасибо. ИМХО именно наличие этого ключевого слова в питоне тормозит развитие ФП в нём. Лямбда — легковесная структура, предназначенная для частого использования, и должна выглядеть и читаться легковесно.
Заметьте, против самого питона ничего не имею, сам долго на нём писал, и язык во многом замечательный. Но ФП в нём очень тяжеловесно именно из-за устройства лямбд (длинное ключевое слово, ограничение на только одно выражение в лямбде).
В принципе, резонно.
Но меня удивляет, что даже в c#, где protected sealed override readonly, а лямбда все равно без ключевых слов. Спецсимволы лично мне просто мысленно читать тяжелее, что ли.

По поводу краткости, к слову, int foo(int a) занимает меньше символов, чем fn foo(a: int) -> int. И набирается с меньшим количеством нажатий на шифт. Но в rust почему-то второй вариант принят.

Хотя это все не очень существенно, прямо скажем.
Потому что так сделано во всех языках с выводом типа. Собственно, Липперт и сам пожалел, что выбрали первый подход просто потому что «так в С принято». (Regret #5)
Ох как давно я этот коммент писал :)
Да, я с тех пор уже понял, что let a: int лучше, синтаксис указателя на функцию получается на порядок чище.
Да я сам через гугл набрел, ибо оригинал статьи уже недоступен (удален). Так что прошу прощения за вызов из глубин времен. Но приятно видеть подобную эволюцию взглядов. Очень наглядно.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории