From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Led To: ALT Devel discussion list Date: Mon, 18 Dec 2006 12:39:28 +0200 User-Agent: KMail/1.9.5 References: <20061010004028.GH23308@localhost.localdomain> <20061217141414.GD6148@localhost.localdomain> <20061217160933.GE6148@localhost.localdomain> In-Reply-To: <20061217160933.GE6148@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200612181239.28677.led@altlinux.ru> Subject: Re: [devel] [PATCH] apt virtual packages X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Dec 2006 10:40:04 -0000 Archived-At: List-Archive: List-Post: В сообщении от 17 декабря 2006 18:09 Alexey Tourbin написал(a): > 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) > > А в случае с одной только операцией "<" такой ляпоты не получается, > потому что не удается логически вывести равенство. (==)(a,b) := !(a