这就是我想要做的:
如果我给
$hello world
我会得到world
我正在做的是这样的:
tail (unwords (words "$hello world"))
但我得到"hello world"
而不是world
我该怎么做才能让它正确?
您必须在unwords
之后申请tail
,而不是相反。
预期的步骤顺序(可能)如下:
你这样做的方式是拆分并立即重新加入单词,然后你只需删除结果字符串的第一个字符(因为字符串只是一个字符列表)。
你想做的是
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
然后切掉第一个 Char $
。我建议使用该函数last
,而不是tail $ unwords
从单词数组中获取最后一个元素world
。
Prelude> last $ words $ "$hello world"
"world"