全てTrueならTrueを返す

Main> all (\x -> f(f(x)) == -x) (0:concatMap (\x -> [-x,x]) [1..10])
True

もしくは、$を使って、

Main> all (\x -> f(f(x)) == -x) $ 0:concatMap (\x -> [-x,x]) [1..10]
True

さらにテスト用の関数を作る。

test_f :: RealFloat a => [Complex a] -> Bool
test_f lst = all (\x -> f(f(x)) == -x) lst
Main> test_f $ 0:concatMap (\x -> [-x,x]) [1..10]
True

ここまでは、ほとんどコメントで教えてもらった事そのまま。

じゃあ「一つでも条件が成り立たなかったらその時の要素を返す」ようにするにはどうすればいいんだろう?
(原理的にはMaybeとかを使えばできるだろうけど、それ用の関数もありそう)

もう一つ別の問題として、今のままだと整数しかテストしていないので、これを適当な数の実数でテストするようにしたい。乱数のリストみたいな物があればいいのかな。

追記

test_fの定義は引数lstは省略して

test_f = all (\x -> f(f(x)) == -x)

と書いた方がHaskell的かも。