https://kotlinlang.org logo
#russian-kotlinasfirst
Title
# russian-kotlinasfirst
a

Asdzendo

02/02/2020, 4:59 PM
У меня вопрос по задачке: Lesson4.task1
Copy code
/**
 * Средняя
 *
 * Найти скалярное произведение двух векторов равной размерности,
 * представленные в виде списков a и b. Скалярное произведение считать по формуле:
 * C = a1b1 + a2b2 + ... + aNbN. Произведение пустых векторов считать равным 0.
 */
Написал так:
Copy code
un times(a: List<Int>, b: List<Int>): Int
{
    var C = 0
    for (i in 0 until a.size) C += a[i] * b[i]
    return C
}
Все хорошо работает, но хочу переписать короткую запись. Пишу так:
Copy code
= a.zip(b).reduce(0.00) {total , next (a , b) -> total +a*b }
Не работает. Есть кто решил эту задачку красиво в одну строчку? Подскажите пожалуйста.
m

Marat Akhin

02/03/2020, 9:32 AM
Для начала посмотрите, в чем разница между
reduce
и
fold
Потом почитайте про то, какой синтаксис правильный при destructuring declaration параметра у лямбды И должно заработать 😃
a

Asdzendo

02/16/2020, 5:19 PM
Спасибо, разобрался
5 Views