【发布时间】:2013-10-16 13:44:36
【问题描述】:
这就是我想要做的:
如果我给
$hello world我会得到world
我正在做的是这样的:
tail (unwords (words "$hello world"))
但我得到的是"hello world" 而不是world
我必须做些什么才能让它正确?
【问题讨论】:
这就是我想要做的:
如果我给
$hello world我会得到world
我正在做的是这样的:
tail (unwords (words "$hello world"))
但我得到的是"hello world" 而不是world
我必须做些什么才能让它正确?
【问题讨论】:
您必须在tail 之后应用unwords,而不是相反。
预期的步骤顺序(可能)如下:
按照您的操作方式,您拆分并立即重新连接单词,然后您只需删除结果字符串的第一个字符(因为字符串只是字符列表)。
【讨论】:
你想做的是
unwords $ tail $ words "$hello world"
在 GHCi 中处理它,我们得到
> words "$hello world"
["$hello", "world"]
> tail $ words "$hello world"
["world"]
> unwords $ tail $ words "$hello world"
"world"
【讨论】:
正如 fjh 正确说明的那样,字符串数组 ["$hello", "world"] 重新加入字符串 "$hello world" 和 tail,然后切掉第一个字符 $。我建议使用函数last 而不是tail $ unwords,它将从单词数组world 中取出最后一个元素。
Prelude> last $ words $ "$hello world"
"world"
【讨论】: