読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Re:全ての組み合わせ

お題: Server error
投稿: Server error

誰も使ってなかったようなので、List#combinations()を使ってみました。
(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10)

def crossProduct(Object... params){
   params*.toList().combinations()
}
println crossProduct([0, 1], "ab", ["Foo", "Bar"])

考察

リストのリストとして引数を渡す必要があるんですが、お題のサンプルの引数の一つに文字列 ("ab") が入っていたんで、可変長引数を使ってみました。


def crossProduct(Object... params){

可変長で受け取っておいて、*.toList() でリストに変換して #combinations() してみました。