私は現在、関数型プログラミングに慣れようとしているだけでなく、新しい言語を再び学習しようとして、Scala でいろいろなことを試しています (前回からしばらく経ちました)。
文字列のリストを 1 つの長い文字列にマージする場合 (例: "scala", "is", "fun" => "scalaisfun"
)、文字列のリストが与えられた場合、それを行う 1 つの方法はfoldRight
、それぞれの要素に連結を実行して適用することであると考えました。もう 1 つの方法は、確かにはるかに簡単ですが、 を呼び出すことmkString
です。
私はgithubをチェックしましたが、それぞれの機能のソースコードを実際に見つけることができなかったので(それについての助けをいただければ幸いです)、機能がどのように実装されているかわかりません。頭の上では の方が柔軟だと思いますが、実装のどこかにmkString
があるのではないかと感じています。foldRight
それに真実はありますか?
それ以外の場合、scaladocs は、それぞれの要素をmkString
呼び出すことについて言及しています。toString
それらがすでに文字列であることを確認するとmkString
、この特定のケースではマイナスポイントになる可能性があります。パフォーマンス、シンプルさ/エレガンスなどに関して、両方の方法の長所と短所について何かコメントはありますか?