在Haskell中,明确函数定义和where符号有哪些优缺点?
明确函数定义:
foo :: Integer -> Integer
foo a = bar a
where
bar :: Integer -> Integer
bar a = Some code here
相对于:
foo :: Integer -> Integer
foo a = bar a
bar :: Integer -> Integer
bar a = Some code here
为什么我要使用其中之一?在效率、安全性、代码可重用性和可读性方面需要注意什么?