partition()

概要

一覧一覧への、パーティション メンバの一覧であり、それぞれにキー、テスト条件を満たす一覧のメンバが含まれます。サブセットの順序、それらの要素の順序のどちらにも依存する必要がありません。

構文

partition ( list As List, _
            Optional key As Name = :Identity, _
            Optional test As Name = :Equal) As List 
引数 [タイプ] 説明
list [一覧] パーティションへの一覧
key [名前] 任意指定。一覧内の項目ごとに呼び出す関数の名前です。既定は :Identity です。この関数の戻り値をテスト関数を使用して比較します。
テスト [名前] 任意指定。一覧内の項目のキー結果に適用するテスト関数の名前です。既定は :Equal です。

例 1

Intent ->partition({"a", "b", "c", "c", "e", "z", "x", "c", "e"}) 
--> {{"x"}, {"z"}, {"e", "e"}, {"c", "c", "c"}, {"b"}, {"a"}} 

例 2

Intent ->partition({"a", "c", "b", "c", 1, 3, "c", 3, 2, 1}) 
--> {{2}, {3, 3}, {1, 1}, {"b"}, {"c", "c", "c"}, {"a"}} 

例 3

Intent ->partition({:a, :c, "b", :c, 1.1, 3, :c, 3, 2, 1}, key := :integer?) 
--> {{ 1, 2, 3, 3}, {c, 1.1, c, "b", c, a}} 
この例では、次のカスタム関数を使用して項目が 2 つの一覧に分割されました。1 つは整数の一覧、もう 1 つは非整数の一覧です。
Function integer?(item As Any) As Boolean 
    integer? = (typeName(item) = :integer) 
End Function 

例 4

Intent >partition({"abc", "123", "24", "xyz", "35"}, key := :length) 
--> {{"35", "24"}, {"xyz", "123", "abc"}} 
結果は、この順序である必要はありません。