2017-12-03 5 views

答えて

2

概念的には、基本的に同じです。それらはそれぞれコレクション*とセパレータを取り、元のコレクションの各要素の間にセパレータがあるコレクションを返します。それらの間の主な違いは以下のとおりです。

  • clojure.string/joinは、セパレータ上にtoStringを呼び出し、コレクションの各要素、および文字列を構築するためにStringBuilderを使用しています。
  • interposeは、セパレータまたはコレクション要素には影響を与えず、完全に実現されたStringの代わりにレイジーリスト*を返します。それはinterleaveの意味で定義されています:。

同様の概念ですが、非常に異なる実装です。

*私は、変換器を返すinterposeのno-collバージョンを無視しています。

0

あなたの直感は正しいです。 interposeもトランスデューサを返すことができ、怠け者であることに注意してください。

ただ、ドキュメンテーション文字列やソースコードを見て:

(doc interpose) 
(source interpose) 

など

関連する問題