Я хочу создать функцию применения, которая принимает функцию с произвольным количеством аргументов, а также список целых чисел и возвращает результат функции (где каждое целое число в списке является аргументом по порядку.
Я думал что-то вроде:
apply :: ([Int] -> Int) -> [Int] -> Int
apply f x:xs = apply (f x) xs
apply f [] = f
Но я знаю, что это не сработает, потому что сигнатура типа неверна — функция не принимает список целых чисел, она просто принимает некоторое количество аргументов типа int.
Кроме того, когда я доберусь до базового случая, применяемый аргумент f должен быть целым числом, что в любом случае нарушает сигнатуру типа.
Кто-нибудь знает, как справиться с такой проблемой?