Допустим, у меня есть список функций
functions = [f, g, h]
каждый с типом a -> a
У меня также есть список значений, скажем, чисел, но здесь все должно работать.
vals = [1,2,3]
Я хочу применить каждую функцию в functions
к соответствующему значению в vals
Мой первый инстинкт - использовать лямбда и zipWith как:
zipWith (\f v -> f v) functions vals
Но, честно говоря, это выглядит уродливо, и я не ожидал этого от такого прекрасного языка, как Haskell. Функция приложения функции звучит как решение. Что-то подобное существует? Я что-то упустил, и есть гораздо более приятное решение моей проблемы? На самом деле я написал эту конструкцию для решения Project Euler. Это работает, но мне это не нравится.