2

これは私がやろうとしていることです:

私が与えるなら、 $hello world私は得るだろうworld

私がやっていることはこれです:

tail (unwords (words "$hello world")) しかし、私は"hello world"代わりに取得していますworld

それを正しくするために私は何をしなければなりませんか?

4

3 に答える 3

8

unwordsの後に申請する必要がありますtail。その逆ではありません。

意図した一連の手順は (おそらく) 次のとおりです。

  1. 文字列を単語のリストに分割する
  2. リストから最初の単語をドロップします
  3. 残りの単語を結合して文字列にする

あなたがそれを行う方法は、単語を分割してすぐに再結合し、結果の文字列の最初の文字を削除するだけです (文字列は単なる文字のリストであるため)。

于 2013-10-16T13:48:03.777 に答える
2

あなたがやりたいことは

unwords $ tail $ words "$hello world"

GHCiでそれを処理すると、次のようになります

> words "$hello world"
["$hello", "world"]
> tail $ words "$hello world"
["world"]
> unwords $ tail $ words "$hello world"
"world"
于 2013-10-16T13:51:32.007 に答える
0

fjh が正しく述べたように、文字列の配列は文字列に["$hello", "world"]再結合され、最初の Charが切り取られます。which の代わりに関数を使用して、words の配列から最後の要素を取得することをお勧めします。"$hello world"tail$lasttail $ unwordsworld

Prelude> last $ words $ "$hello world"
"world"
于 2013-10-17T05:19:48.340 に答える