在 Haskell 中输出一个值,如果其类型不是 Show 的实例,则为默认值



我尝试调试一些箭头,这真的很难。我最终在这里和那里坚持trace,但它确实想要一个Show实例作为它的参数,这限制了它的使用。如果它是 Show 的实例,有没有办法show某些东西,如果不是,则使用某种默认输出值?我保证只将其用于调试;-(

人们如何调试箭头...

最好的办法是将跟踪组合到箭头中:

strace x = trace (show x) x
something :: (Num c, Show c, Arrow cat) => cat c c
something = arr (+1) <<< arr strace
-- > something 1
-- 1
-- 2

最新更新