Например, с учетом хэш-набора h = [1,2,3,4,5]
цель состоит в том, чтобы подсчитать количество уникальных элементов i, чтобы h.contains(i+1)
.
Я мог записать быстрый код, используя reduce()
как
h.reduce(0,{h.contains($1+1) ? $0 + 1 : $0})
Но что если h является массивом, содержащим дубликаты вместо хэш-набора?Сначала мне нужно преобразовать его в хэш-набор, а затем использовать приведенное выше выражение:
Set(h).reduce(0,{Set(h).contains($1+1) ? $0 + 1 : $0})
Но, таким образом, мы рассчитали Set(h).count + 1
раз Set (h), как указано в @ carpsen90, есть ли способнаписать код как
Set(h).reduce(0,{self.contains($1+1) ? $0 + 1 : $0})
без использования временной переменной для хранения Set(h)
?