任意の数の引数と整数のリストを持つ関数を受け取り、関数の結果を返す関数 apply を作成したいと考えています (リスト内の各整数は順番に引数です。
私は次のようなことを考えていました:
apply :: ([Int] -> Int) -> [Int] -> Int
apply f x:xs = apply (f x) xs
apply f [] = f
しかし、型シグネチャが間違っているため、これが機能しないことはわかっています。関数は int のリストを使用せず、いくつかの int 引数を使用するだけです。
さらに、基本ケースに到達すると、適用する f 引数は実際には整数である必要があり、とにかく型シグネチャに違反します。
この種の問題に対処する方法を知っている人はいますか?