From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: lexicographic list comparison Date: Sat, 10 Sep 2022 11:22:25 +0200 Message-ID: <87wnab60tq.fsf@dataswamp.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29768"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Cancel-Lock: sha1:Wo6i217DJ26cRzn8MiOOz6JZcTA= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Sep 10 11:27:44 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oWwm8-0007am-8t for ged-emacs-devel@m.gmane-mx.org; Sat, 10 Sep 2022 11:27:44 +0200 Original-Received: from localhost ([::1]:48016 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oWwm7-0002MU-9c for ged-emacs-devel@m.gmane-mx.org; Sat, 10 Sep 2022 05:27:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59282) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWwhC-0001Lr-3H for emacs-devel@gnu.org; Sat, 10 Sep 2022 05:22:43 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:51740) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWwhA-0003NH-CW for emacs-devel@gnu.org; Sat, 10 Sep 2022 05:22:37 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oWwh7-0001cD-HJ for emacs-devel@gnu.org; Sat, 10 Sep 2022 11:22:33 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 10 Sep 2022 05:25:16 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:295113 Archived-At: Mattias EngdegÄrd wrote: >> Or maybe sorting lists of lists is just such a rare op that >> no one has ever encountered it before me? > > It would be useful to have a total ordering on Lisp values: > for heterogeneous ordered collections, for simplifying > multi-key sorting, for normalising unordered > collections, etc. > > The devil is in the details: are strings compared with our > without properties? Do we observe the wonky IEEE rules for > ordering floats? Is there a particularly useful ordering > between elements of different types? Do we need to worry > about circularity? How do we compare hash tables? And so on. > > Consistency with `equal` would be desirable (up to hash > table identity, perhaps). Interesting, what is this, type theory? Sounds like something that is available in Haskell maybe ... What is the benefit if you have it? Sort things recursively and with no fear running into data of a type that would wreck it? It's easy to do, (order-pair a b) which accepts any an all data and returns the list (a b) iff a < b. It could first check types, then delegate the task to the existing greater-than function for all cases that ... makes sense. Making up rules that makes sense for everything that don't make sense to compare is maybe more difficult ... -- underground experts united https://dataswamp.org/~incal