- 1
val cityEq: (City) -> (Customer) -> Boolean = { city -> { it.city == city } }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
val cityEq: (City) -> (Customer) -> Boolean = { city -> { it.city == city } }
Какой Kotlin ^_^^_^^_^
PolinaAksenova # 0
bormand # 0
Ого, прям как в функциональщине всякой.
А откуда берутся city и it? Нигде же не написаны имена аргументов.
PolinaAksenova # 0 ⇈
А, в "{ city -> ...}" "city" — это как раз имя параметра.
bormand # 0 ⇈
bormand # 0 ⇈
Во внешней лямбде меньше сахара, там { city -> f(city) }.
А вот во внутренней уже и имя переменной опустили, поэтому там it. Т.е. там { it -> it.city == city } если полностью расписать.
PolinaAksenova # 0 ⇈
Когда лямбда присваивается переменной с явня заданным типом — Котлин изо всех сил пытается вывести типы параметров лямбд автоматически.
DypHuu_niBEHb # 0 ⇈
ненавижу кстати неявный захват всякого говна. ГЦ-Пидары натащут хуйни, а мне потом мемори лики искать
bormand # 0
PolinaAksenova # 0 ⇈
Hacpy # 0 ⇈
DypHuu_niBEHb # 0 ⇈
Desktop # 0 ⇈
nycpblcmuk # 0 ⇈
nycpblcmuk # 0 ⇈
DypHuu_niBEHb # 0 ⇈
o6AMa_4MO # 0 ⇈
TAPAC # 0 ⇈
PolinaAksenova # 0
bormand # 0 ⇈
Какое руби )))
CHayT # 0 ⇈
PolinaAksenova # 0 ⇈
Тип лямбды зависит от типа переменной, которой эта лямбда присваивается.
nycpblcmuk # 0 ⇈
Каррирование, частное применение?
nycpblcmuk # 0 ⇈
Какая невнимательность )))
1024-- # 0 ⇈
PolinaAksenova # 0 ⇈
3EHuTHblu_nemyx # 0 ⇈
bormand # 0 ⇈
DypHuu_niBEHb # 0 ⇈
DypHuu_niBEHb # 0 ⇈
Это зело полезно для написания DSLей
ну собссно и в руби тоже похоже
1024-- # 0
Я ещё понимаю, зачем писать (a -> b) -> c и зачем начинающий писал бы a -> (b -> c). Но (a) -> (b) -> c. Зачем? Зачем?
bormand # 0 ⇈
PolinaAksenova # 0 ⇈
guest # 0