[devel] [PATCH] apt virtual packages

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Дек 17 19:09:33 MSK 2006


On Sun, Dec 17, 2006 at 05:14:14PM +0300, Alexey Tourbin wrote:
> On Sun, Dec 17, 2006 at 04:43:40PM +0300, Alexey Tourbin wrote:
> > +static inline bool
> > +vercmpOrder(const pkgCache::VerIterator &a, const pkgCache::VerIterator &b)
> > +{
> > +   return a.CompareVer(b) < 0;
> > +}
> 
> Кстати вот тут должно быть "<" или "<="?
> Что-то у Страуса примера на сортировку с предикатом порядка нету.

Ага, тут похоже должно быть "<=".  Дело в том, что всего одной операции
"<=" достаточно, чтобы логически вывести все остальные операции сравнения.

(==)(a,b) := (a<=b)&&(b<=a)
(>=)(a,b) := !(b<=a)
(!=)(a,b) := !(a==b)
(<)(a,b)  := (a<=b)&&(a!=b)
(>)(a,b)  := (a>=b)&&(a!=b)

А в случае с одной только операцией "<" такой ляпоты не получается,
потому что не удается логически вывести равенство.

А может я чего-то не понимаю?  Кто точно знает?

> > +done:
> > +   // best versions go first
> > +   found.sort(vercmpOrder);
> > +   found.unique();
> > +   found.reverse();
> > +   return found;
> > +}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20061217/9c22740f/attachment-0001.bin>


Подробная информация о списке рассылки Devel