我正在记录a
的{{1}}和b
值。
foldl
它按预期工作,但我无法理解输出:
words = ["mate", "bro", "bruv"]
sum2 = List.foldl
(\a b ->
Debug.log(toString <| a)
Debug.log(toString <| b)
a
) "guv" words
为什么将"mate": <function>
"guv": "mate"
"bro": <function>
"mate": "bro"
"bruv": <function>
"bro": "bruv"
作为a
输出,将<function>
作为b
输出的是什么?
答案 0 :(得分:5)
Debug.log
有两个参数,一个标记字符串,可以是任何东西,然后是要记录的值。像这样更新代码可能有效:
words = ["mate", "bro", "bruv"]
sum2 = List.foldl
(\a b
Debug.log "Value of a: " a
Debug.log "Value of b: " b
a
) "guv" words
虽然,考虑到这一点,我认为您需要做一些技巧来记录您不想返回的值,如下所示:
words = ["mate", "bro", "bruv"]
sum2 = List.foldl
(\a b ->
let
_ = Debug.log "Value of a: " a
_ = Debug.log "Value of b: " b
in
a
) "guv" words