[英]Haskell- Encipher function
我正在 HASKELL 中創建 function 加密。 這就是我到目前為止所擁有的。
encipher :: Eq a => [a] -> [b] -> [a] -> [b]
encipher _ _ [] = []
encipher xs ys (z:zs) = if f == []
then z:encipher xs ys zs
else snd (head f) : (encipher xs ys zs)
where t = zip xs ys
f = filter ((== z) . fst) t
p9tests = [encipher ['A'..'Z'] ['a'..'z'] "THIS" == "this"]
我用 p9tests 測試它。 不知道我做錯了什么。
你的問題是縮進。 where
下的所有定義都需要在同一級別縮進。
因此,要修復您的特定錯誤,您可以將f
縮進到上一行的t
級別:
where t = zip xs ys
f = filter ((== z) . fst) t
或者您可以 go 以另一種方式將t
帶到f
的水平:
where
t = zip xs ys
f = filter ((== z) . fst) t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.