榆树:Debug.log如何工作?

时间:2017-04-10 10:28:58

标签: logging output elm

我正在记录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输出的是什么?

1 个答案:

答案 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