求解释Haskell函数findGuess中!! 0的含义
解释Haskell函数中
!! 0的含义 先拆解这段Haskell递归函数里的关键部分:
!!是Haskell内置的列表索引操作符,专门用来从列表里按位置取元素,Haskell的列表索引是从0开始计数的。- 所以
guessList !! 0的意思就是:取出guessList这个列表的第一个元素。
结合这段函数的逻辑看:
这个函数的作用是从guessList(里面应该存的是类似(字母A, 字母B)的映射对)里,找和输入letter匹配的映射——如果letter是某对的第一个元素(fst)或者第二个元素(snd),就返回这对;如果遍历完列表都没找到,就返回(letter, letter)也就是自身映射。
代码里每次先拿列表的第一个元素(guessList !! 0)做匹配检查,不匹配就递归处理去掉首元素后的剩余列表(tail guessList),直到找到匹配项或者列表为空。
内容的提问来源于stack exchange,提问作者Palma Rey
相关产品推荐
相关产品推荐

