在示例中,我观察了dropWhile
的行为:
*Main> dropWhile (/= 'X') "AXF"
"XF"
但是,我很困惑为什么"AX"
没有返回:
*Main> dropWhile (== 'X') "AXF"
"AXF"
为什么"AXF"
会在此测试中返回?
答案 0 :(得分:13)
dropWhile
在条件为真时丢弃元素,然后在条件为假时停止(返回其余元素)。
使用dropWhile (== 'X') "AXF"
条件立即为假(因为'A' == 'X'
为false),因此它不会丢弃任何内容并返回整个列表。
答案 1 :(得分:1)
表达式可以用英语解释为:
从左到右迭代并在字符等于'X'时从该字符串中删除字符。
此算法隐含的是函数返回字符串中的第一个字符,使谓词为false。