May. 15th, 2010
let me show you something
May. 15th, 2010 11:04 amI was experimenting with Set[T] functor variance. Here are my considerations regarding the opportunity to make it contravariant. In short: it's impossible.
So, what I am thinking. Can we make Set functor contravariant in OOP? I mean, we have two problems here:
Seems like variance just does not work here.
I'll continue investigating the opportunities for covariance.
/** * Casts a set into a set of subtype (contravariance, that is) * This method does not work, due to JVM type erasure. * Actually, delegating the work to runtime would be a stupid idea anyway; * so, is it a general problem with oop? Have to think. */ @Deprecated /*implicit*/ def downshift[A, B >: A] (source: Set[B]) : Set[A] = { val b2a: (B => A) = {case (a: A) => a} val elements = {for (b <- source; if b.isInstanceOf[A]) yield b2a(b)} setOf(elements, source.size, source.contains _) }
So, what I am thinking. Can we make Set functor contravariant in OOP? I mean, we have two problems here:
- Java type erasure makes it impossible to actually check the element type;
- OOP in general forces us to delegate this type checking to runtime - which is, I assume, a wrong idea
Seems like variance just does not work here.
I'll continue investigating the opportunities for covariance.
китайские коммунисты
May. 15th, 2010 03:28 pmМы типа воспринимаем это в переносном смысле.
А зря. Их тут до хрена. Там они члены партии, а здесь притворяются этакими нейтральными... ну вы поняли. Их тут ДО ХРЕНА. И у них есть ячейки. Если в конторе работают три члена партии, то они обязаны организовать ячейку. No kidding. И это в нагрузку к этим блядским мусульманам.
А зря. Их тут до хрена. Там они члены партии, а здесь притворяются этакими нейтральными... ну вы поняли. Их тут ДО ХРЕНА. И у них есть ячейки. Если в конторе работают три члена партии, то они обязаны организовать ячейку. No kidding. И это в нагрузку к этим блядским мусульманам.
френдинг и дыбринг
May. 15th, 2010 10:47 pmЯ так думаю. Дыбры вскоре переведу в режим friends-only, а остальное буду писать, как и дальше, для всех. Почти всех, у кого я во френдах, и которые проявляют признаки человеческого существа (а не безумного бота), запишу во френды; знакомых же занесу в группу знакомых, если надо поделиться чем-то именно со знакомыми.
Сегодня был полубезумный день.
За завтраком досмотрели Альфа (первую серию), потом включили 3rd rock from the sun. Это мы, смеясь, расстаёмся со своим прошлым.
( Read more... )
За завтраком досмотрели Альфа (первую серию), потом включили 3rd rock from the sun. Это мы, смеясь, расстаёмся со своим прошлым.
( Read more... )