假设我想写一堆函数,func0比如说func9. 他们接受相同的输入,但用它们做不同的事情。但是,它们都涉及相同的输入检查。例如:
func0 :: Int -> [a] -> Either String a
func0 i lst
| i < 0 || i > length lst = Left "Index Out of Bounds!"
| otherwise = -- does things
检查索引越界的部分对于每个函数都是相同的,所以我不想对每个函数重复它们。有什么do魔法可以稍微清理一下代码吗?提前致谢!