1

注: この質問は、以前の同様の質問の再考に基づいています。

Erlang のsofs:partitionが、ウィキペディアのSet partitionsに関するページで説明されているのと同じことを行うかどうかを知りたいです。

もしそうなら、どうすれば次の結果を得ることができますか?

与えられたデータ構造 (セットのセットまたはリストのリスト):

   [a,b,c]
    [a,b]
    [c]
    [d,e,f]
    [d,f]
    [e]

次のユニークな要素が含まれています。

a,b,c,d,e,f

引数を指定して関数を実行した結果は次のN = 2ようになります。

[[a,b,c], [d,e,f]]

次のパーティションは、実行プロセスで除外する必要がありますsofs:partition

[[a,b,c], [d,f], [e]]
[[a,b], [c], [d,e,f]]
[[a,b], [c], [d,f], [e]]

sofs:partition でこれを行うことはできますか? はいの場合、実行中にパーティションを捨てて、繰り返し実行できlength(Partition) =/= Nますか? sofs:partitionN引数を導入するために関数を何らかの方法で再定義することは可能ですか?

4

1 に答える 1

0

おそらく、sofs:partition の結果を lists:foldl に渡し、間違った長さのパーティションを手動で除外することができます。

それがあなたのタスクに合わない場合 (たとえば、2 回目の実行は受け入れられません)、sofs sourcesを見て、それを例として使用し、1 回のパスで必要なことを正確に実行する独自の関数を作成できます。

于 2012-04-19T20:36:33.540 に答える