所以我正在尝试制作一个函数“rot”,它接受一个字符串并返回一个具有所有可能旋转的字符串列表,例如 rot “abc”返回 [“abc”,“bca”,cab”],看起来很简单用其他语言做,但我是haskell的新手,所以我想不出办法。这就是我到目前为止所拥有的:
rot :: [Char] -> [[Char]]
rot word =
let
lst = [tail word ++ [head word]]
in
lst
main = do
print(rot "abc")
它按预期返回“bca”,但我想要一种查找所有旋转并将其存储在列表中的方法。
这是python中的一个例子
def rot(word):
lst = []
for i in range(len(word)):
newWord1 = word[0:i]
newWord2 = word[i:]
newWordResult = newWord2 + newWord1
lst.append(newWordResult)
return lst