2016-03-29 28 views
3

Üçüncü kümenin içeriğine göre bir kümeyi ikiye bölme konusuna bakıyordum. Kazara bu çözümü tökezledi:Scala bölümü bir set

val s = Set(1,2,3) 
val s2 = Set(4,5,6) 
val s3 = s ++ s2 

s3.partition(s) 
res0: (scala.collection.immutable.Set[Int],scala.collection.immutable.Set[Int]) = (Set(1, 2, 3),Set(5, 6, 4)) 

şöyle partition imzası: bir yerine bir işlev çalışır kümesi sağlayarak nasıl

def partition(p: A => Boolean): (Repr, Repr) 

Birisi bana açıklayabilir misiniz? Eğer sa ya da değil içerip içermediğini dönmek herhangi bir değere A ait a için: Önceden

Teşekkür

cevap

6

A s: Set[A]bir işlev A => Boolean olduğunu ayarlayın. Boole
bazı eleman bu sette bulunan Testler eğer:


Bir documentation for .apply bakarsanız

scala> val f: Int => Boolean = Set(1,2,3) 
f: Int => Boolean = Set(1, 2, 3) 

scala> f(1) 
res0: Boolean = true 

scala> f(4) 
res1: Boolean = false 
, sen

def (A ELEM) uygulamak göreceksiniz.

Bu yöntem, içeriğe eşdeğerdir. Kümelerin, yüklemler olarak yorumlanan olmasını sağlar.