我需要一个函数,它可以执行以下操作:
prefixes :: String -> [String] -> [(Int,String)]
prefixes "apples" ["ap","appl","le"] == [(0, "ap"), (1, "appl")] :: [(Int, String)]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已设法做到这一点:
prefixes xs (y:ys) = filter ((isPrefixOf xs).snd) a where
a=(zip [0..] (y:ys))
Run Code Online (Sandbox Code Playgroud)
但结果是一个空列表,我无法找到一种方法使其工作.(是的,这是一个家庭作业,我没能按时完成,但我仍然对正确的方法感到好奇)
有没有办法删除3元素元组的第一个元素,所以我得到一个2元素元组而不必为此目的创建另一个函数?
(A,B,C) - >(B,C)
基本上我必须使用一个函数,它创建一个3元素元组然后我必须使用一个只使用它的最后两个元素的函数.
谢谢您的回答.