我发现traceId
返回消息字符串本身真的很奇怪。为什么有人想这样做?
是否存在traceId
会派上用场的常见情况?
答案 0 :(得分:2)
修改强>
对大卫的信任,他提请注意我的traceId'
正是traceShowId
。
因此,traecId
只是多态String -> String
的{{1}}单态版本,它也会从引号中删除打印的字符串。
旧回答:
解释traceShowId :: Show a -> a -> a
的一种方法是,它是traceId
- 更通用String
的专用版本,不在stdlib中:
traceId'
这样
traceId' :: Show a => a -> a
traceId' x = trace (show x) x
示例:强>
traceId = traceId' :: String -> String
但出于某种原因,my = id; func = id; chain = id; value = 3
main = do
print $ length $ traceId "chain is called!"
print $ length $ traceId' [1,2,3]
的一般版本(我称之为traceId
)不在stdlib中。