私は効果的に[take 1,take 2,take 3]
を持っているので、リストの各要素がタイプ[Int] -> [Int]
であるように、関数のリストを作成しようとしています(後でzipwith
と一緒に使う)。マップを使用して部分的に適用された関数のリストを作成するにはどうすればよいですか?
これは私が試したことであり、正しくなければならないと感じています。なぜ私はエラーメッセージが表示されているのか分かりません。
Prelude> map (\x -> take x) [1..5]
<interactive>:46:1:
No instance for (Show ([a0] -> [a0]))
(maybe you haven't applied enough arguments to a function?)
arising from a use of ‘print’
In a stmt of an interactive GHCi command: print it
エラーメッセージは、GHCiが結果の関数リストの印刷方法を知らないと言うだけです。表現自体に何も問題はありません。あなたは ':t'でそれのタイプを依頼することができます。それはうまくいくはずです。 – kosmikus
また、lambda: 'map take [1..5]'も同様にうまく動作します。 – phg