@merborne さんの Rubyの Object#repeat は、Scala だと iterate

RubyにおけるシーケンスはObject#repeatに任せなさい!

っていうか

なので、Scalaがiterateという名前なのは、Haskell(もしくはそれに近いその他の関数型言語)由来な気がします。

以下、もとのサンプルのいくつかを、なんとなくScalaで書いてみただけです。

ちなみに、Scalaの場合は、ListにもVectorにもStreamにもIteratorにもiterateメソッドがありますが、元のやつが遅延評価*1だったので、Iteratorのiterate使って、最後に表示するためにtoListしました。StreamやListのiterateでも(Listの場合、最初に長さ決めないといけないですが)同じようなことできます。

*1:なおかつtakeした際に評価されるのか?