如何在haskell中旋转文本,以便只有单个单词旋转而不是整个文本?

时间:2011-03-18 16:06:20

标签: haskell rotation

此文本需要使用自然数向左旋转,并在输入负数时向右旋转。所以:

rotate 1    "foo bar baz" = "ofo rba zba"
rotate (-1) "foo bar baz" = "oof arb azb"

另外我可以将文本分解成行然后单词,我知道所有的行,unlines,words,unwords。我无法左右移动文本的定义,我是否需要使用head函数?

1 个答案:

答案 0 :(得分:7)

为了构建你想要的功能,我给你提供了一些砖块。不包括装配说明:

  • 函数wordsunwords将字符串拆分为单词列表,反之亦然
  • cycle通过一次又一次追加列表,从输入中创建无限列表
  • take从列表中获取固定数量的元素
  • drop从列表中删除固定数量的元素
  • map将函数应用于列表的所有元素

(通过hoogle找到的文档链接)