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

Комментарии 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 лучше, синтаксис указателя на функцию получается на порядок чище.
Да я сам через гугл набрел, ибо оригинал статьи уже недоступен (удален). Так что прошу прощения за вызов из глубин времен. Но приятно видеть подобную эволюцию взглядов. Очень наглядно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории