我有一个需要在特定条件下终止的功能。例如,假设我们有以下功能:
func :: Int -> [[Int]] -> [[Int]]
func _ [] = []
func x (a:as) = func2 x a:func x as
func2 :: Int -> [Int] -> [Int]
func2 _ [] = []
func2 x (a:as) = x*a:func2 x as
假设我希望 func one 被正常调用,但是每当我们在 [[Int]] 输入中得到一个负值时,我们就会终止。所以我们只处理正值。那么你怎么能让 func2 发送一些信号来退出整个过程而不是继续呢?