Пожалуйста, извините за мой английский :( Поясним мой вопрос на примерах У нас есть массив a
:.Scala. Аргументы вложенными лямбды с коротким синтаксисом
var a = Array(1,1,1,1,2)
Мы можем:
фильтр
a
:a.filter(_ < 2)
Подсчитайте несколько элементов в:
a.count (_ < 2)
Получение уникальных элементов в коллекции:
a.filter { i => a.count(_ == i) == 1 }
Вопрос заключается в: как сделать третий пункт, но без введения переменной я? Можно ли написать что-то вроде:
a.filter (a.count (_ == __) == 1)
Я понимаю, что я могу написать это (и это еще не хватает):
a.filter { i => a.count(_ == i) == 1 }
Но я просто заинтересован в ответе.
или 'хз группеГо тождества собирающего {случай (k, v), если V.SIZE == 1 => к}' – sschaef
Или (еще быстрее и сложнее): 'a.foldLeft (collection.mutable.Map [Any, Int](). WithDefaultValue (0)) ((m, x) => {m (x) + = 1; m}). filter (_._ 2 == 1) .keys'. Правда, только быстрее для списков из 70 или более элементов. – colevk