[英]How does sofs:partitions in Erlang work?
注意:這個問題是基於對我之前類似問題的重新思考。
我想知道Erlang的sofs:partition是否做與Wikipedia頁面有關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
的過程中應過濾掉以下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:partition
函數以引入N參數?
您可能只是將sofs:partition的結果傳遞給list:foldl並手動過濾出長度錯誤的分區。
如果它不適合您的任務(例如,第二次運行是不可接受的),則可以只看一下sofs源 ,以它為例,並制作自己的函數,即可一次完成您真正需要的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.