Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Nice post! I think your encoding of functors could be replaced by:

  object Module {
    private class MyUnbalancedSet[A](O: Ordered[A]) extends MySet[A] {
      ... body as in your post
    }
    def UnbalancedSet[A](O: Ordered[A]): MySet[A] = new MyUnbalancedSet[A](0)
  }
Which looks more like "normal" Scala but still offers the same amount of abstraction.


Thanks!

Yes, you're right that we can use a class here and instantiate an object of the class. I thought I would skip the intermediate step because all I care about is the upcast type, MySet[A], and not the actual derived type.

But it's very much a matter of preference!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: