0

私は現在、Haskell で再帰を使用する方法を学んでおり、整数のリスト内のすべての要素を調べてそれらを否定する方法を理解しようとしています。これまでのところ、これを行うことはできますが、リストの最後の要素に対してのみ行うことができるため、エラーが最後の行にあることがわかります。最後の要素だけでなく、リスト内のすべての要素を調べる最良の方法は何ですか?

negation :: [Int] -> [Int]
negation [] = []
negation [n] = [-n]
negation(x:xs) = negation xs
4

4 に答える 4

0

前の回答で述べたように、次のように高階関数を使用するのが最善の方法です

negation xs = map negate xs

可能な限り常に高階関数を使用してください。これは wiki.haskell.org にある一般的な Haskell プログラミング ガイドラインの 1 つであり、コードを簡素化します。

于 2016-02-09T05:57:06.547 に答える