据我了解,Haskell 中的 map 接受一个函数和一个 List,并将该函数应用于该列表中的每个元素,然后再创建一个新列表,并将该函数应用于每个成员。
试一试,这适用于非常简单的功能,例如(+5)
,如果我键入以下内容,它可以正常工作:
map (+7) [2,8,9,3]
我得到:
[9,15,16,10]
但是,这不适用于我创建的函数。假设我创建了一个shiftLetter
类型声明为的函数:
shiftLetter :: Char -> Int -> Char
(随着 Int 移动返回的字母有多远)
如果我创建一个新函数来使用多个字母并输入:
shiftLetters :: String -> Int -> Char
shiftLetters letters shift = map shiftLetters "AKHLKHN"
我收到错误,这是为什么?