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

发布于 2024-10-24 02:30:52 字数 232 浏览 1 评论 0原文

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

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

还要补充一点,我可以将文本分解为行,然后是单词,我知道所有的行,非行,单词,非单词。我无法理解向左或向右移动文本的定义,我需要使用 head 函数吗?

This text needs to rotate left with a natural number and rotate right when a negative number is entered. So:

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

Also to add i can break down the text into lines and then words, i know all the lines, unlines, words, unwords. I'm having trouble with the definitions for moving the text left or right, do i need to use the head function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无可置疑 2024-10-31 02:30:52

为了构建您想要的功能,我为您提供了一些砖块。不包括汇编指令:

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

(通过 hoogle)

To build the function you want, I provide you some bricks. Assembly instructions not included:

  • The functions words and unwords split a string into a list of its words and vice versa
  • cycle creates an infinite list from its input by appending the list again and again
  • take takes a fixed amount of elements from a list
  • drop drops a fixed amount of elements from a list
  • map applies a function to all elements of a list

(Documentation links found through hoogle)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文