【发布时间】:2020-10-28 13:17:37
【问题描述】:
所以我正在尝试创建一个函数“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
【问题讨论】:
-
你能举个例子说明你在其他语言中是如何做到的吗?
-
我在问题中添加了一个python示例
标签: haskell