我想创建一个函数 apply ,它接受一个带有任意数量参数的函数以及一个整数列表,并返回函数的结果(其中列表中的每个整数都是按顺序排列的参数。
我在想类似的事情:
apply :: ([Int] -> Int) -> [Int] -> Int
apply f x:xs = apply (f x) xs
apply f [] = f
但我知道这行不通,因为类型签名是错误的——该函数不采用 int 列表,它只需要一些 int 参数。
此外,当我到达基本情况时,要应用的 f 参数实际上应该是一个整数,无论如何都违反了类型签名。
有谁知道如何处理这类问题?