- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
filterKeys
Tue, 2009-05-19, 12:18
Was the former implementation accomplishing something desirable? I
couldn't figure it out if so.
- def filterKeys(p: A => Boolean) = new DefaultMap[A, B] {
- override def foreach[C](f: ((A, B)) => C): Unit = for (kv <- self) if (p(kv
- def elements = self.elements.filter(kv => p(kv._1))
- override def contains(key: A) = self.contains(key) && p(key)
- def get(key: A) = if (!p(key)) None else self.get(key)
- }
+ def filterKeys(p: A => Boolean): This = this filter (kv => p(kv._1))
Also, I propose filterKeys be deprecated.
On Tue, May 19, 2009 at 1:18 PM, Paul Phillips wrote:
> Was the former implementation accomplishing something desirable? I
> couldn't figure it out if so.
>
> - def filterKeys(p: A => Boolean) = new DefaultMap[A, B] {
> - override def foreach[C](f: ((A, B)) => C): Unit = for (kv <- self) if (p(kv
> - def elements = self.elements.filter(kv => p(kv._1))
> - override def contains(key: A) = self.contains(key) && p(key)
> - def get(key: A) = if (!p(key)) None else self.get(key)
> - }
> + def filterKeys(p: A => Boolean): This = this filter (kv => p(kv._1))
>
No, the two are different. One is lazy and the other is strict.
filterKeys would be the same as
this.view.filter(p)
except that map views do not (yet?) exist.
Cheers