2
집합에 뭔가가 있으면 true를 반환하는 함수 T => Boolean으로 표현되는 반 차별 집합을 만드는 것에 대해 질문이 있습니다. 그렇지 않으면 false를 반환합니다. 그것은 다음과 같습니다 노조 기능유형 T에서 유형 U로 변환 함수 : T
class BoolSet[-T](f: T=>Boolean) {
def contains(x:T): Boolean = f(x)
def add(x:T): BoolSet[T] = return new BoolSet[T](((y: T)=> f(y) || y==x))
def remove(x:T): BoolSet[T] = if(f(x)) return new BoolSet[T](((y: T)=> f(y) && y!=x)) else return this
def union[U>:T](s : BoolSet[U]) : BoolSet[U] = return new BoolSet[U](((y: U) => this.contains(y) || s.contains(y)))
}
나는 데 문제를 this.contains
함수 T=>Boolean
보다는 U=>Boolean
때문이다. 이 함수를 유형 T를 유형 U로 변환하는 방법은 무엇입니까?
왜 T가 U의 하위 유형이므로 T가 할 수있는 모든 작업을 수행 할 수 있는지 이해할 수 없습니다.
예, 저는 귀하의 게시물을보기 전에 실제로 이것을 보았습니다. 바보 나. 어쨌든 고마워. – Joe