编写`(\ x - > traceShow xx)`的简单方法是什么?

xzh*_*zhu 3 debugging haskell

打印表达式的值是调试中的常见做法.例如,如果我有一段这样的代码

my . super . cool . fUnCtIoN . chain $ value
Run Code Online (Sandbox Code Playgroud)

而且我想看看输出fUnCtIoN . chain,我想补充一下

my . super . cool . (\ x -> traceShow x x ) . fUnCtIoN . chain $ value
Run Code Online (Sandbox Code Playgroud)

对于像这样的简单任务来说,这是满口的,更不用说我是否要打印许多中间结果:

(\ x -> traceShow x x )
    . my
    . (\ x -> traceShow x x )
    . super
    . (\ x -> traceShow x x )
    . cool
    . (\ x -> traceShow x x )
    . fUnCtIoN
    . (\ x -> traceShow x x )
    . chain
    $ value
Run Code Online (Sandbox Code Playgroud)

它看起来很糟糕.有一个更好的方法吗?

lef*_*out 7

好用traceShowId!它完全符合您的要求.

my . super . cool . traceShowId . fUnCtIoN . chain $ value
Run Code Online (Sandbox Code Playgroud)