Необходимо написать функцию func merge2Channels(fn func(int) int, in1 <-chan int, in2 <- chan int, out chan<- int, n int)
.
Описание ее работы:
n раз сделать следующее
- прочитать по одному числу из каждого из двух каналов
in1
иin2
, назовем ихx1
иx2
. - вычислить
f(x1) + f(x2)
- записать полученное значение в
out
Функция merge2Channels
должна быть неблокирующей, сразу возвращая управление.
Функция fn
может работать долгое время, ожидая чего-либо или производя вычисления.
количество итераций передается через аргумент n
.
целые числа подаются через аргументы-каналы in1
и in2
.
функция для обработки чисел перед сложением передается через аргумент fn
.
канал для вывода результатов передается через аргумент out
.