【发布时间】:2017-10-25 23:41:01
【问题描述】:
我正在处理一个与基本加密相关的问题。我正在尝试创建一个名为encryptf 的函数
- 获取 a 的 xs 列表
- 获取 a 的列表 ys
- 返回一个函数,该函数将 xs 的元素映射到 ys 的相应元素,并将其他所有元素映射到自身。
到目前为止,它看起来像这样:
encryptf :: Eq a => [a] -> [a] -> (a -> a)
encryptf xs ys = \f -> head [d | (c,d) <- (zip xs ys)]
还有一个名为encryptString 的函数,如下所示:
encryptString :: (a -> a) -> [a] -> [a]
encryptString f xs = map f xs
这些函数将像这样使用:
encryptString (encryptf "abc" "xyz") "dcba"
这将返回"dzyx"
现在我知道我的encryptf 函数是错误的,因为它会将所有内容更改为 ys 的第一个元素。我不知道从这里去哪里。任何帮助将不胜感激。
【问题讨论】:
标签: haskell