foo :: [Integer] -> Bool という関数がありますが、着信引数がいくつかの基準に対して有効な場合にのみ機能し、そうでない場合はすぐに終了する必要があります。
foo x | not $ isSorted x = False
| otherwise = some_recursive_stuff_here
where
isSorted ax = ax == sort ax
等
しかし、ソートされているかどうかを毎回チェックしたくありません。それを処理して別の内部機能を導入する良い方法はありますか?