我想知道如何实现:
取字符串的前 n 个字符,然后++
(将它们连接起来)删除这些第一个 n 并取下一个 n,依此类推(不切割单词)。我已经尝试过函数组合,$
但我唯一得到的是错误。
编辑
我正在尝试为给定的列宽(n)对齐左侧的文本,这就是为什么我尝试不剪切单词的原因,但是如果在数字 n 处有一个单词,只需在它之前取一些字符,然后使用 \n 开始再次为下一行。到目前为止,我的主要问题是检查剪切词条件(我可以使用!!
,但我应该在带有 map(-1) 的守卫中使用它还是如何使用它)并实现递归,因为作为基础我得到了
take n s ++ "\n" ++ take n (drop n s)
以及 n 小于最长单词的情况:
leftAlign n str = if n < ((maximum . map length . words) str) then "" else leftAlign n str