From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 27ZZGvK8jl+zPgAA0tVLHw (envelope-from ) for ; Tue, 20 Oct 2020 10:33:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id yFm0FfK8jl8dIgAAbx9fmQ (envelope-from ) for ; Tue, 20 Oct 2020 10:33:22 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id F36249401BD for ; Tue, 20 Oct 2020 10:33:21 +0000 (UTC) Received: from localhost ([::1]:54846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kUoxE-0008Qu-V1 for larch@yhetil.org; Tue, 20 Oct 2020 06:33:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43638) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUowm-0008Qg-Vm for guix-devel@gnu.org; Tue, 20 Oct 2020 06:32:52 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:46718) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUowk-0002p0-WA; Tue, 20 Oct 2020 06:32:52 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 12D6014E; Tue, 20 Oct 2020 12:32:48 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4UJua_Qjsm6y; Tue, 20 Oct 2020 12:32:47 +0200 (CEST) Received: from jurong (p200300dd571a08003fc060e35b706573.dip0.t-ipconnect.de [IPv6:2003:dd:571a:800:3fc0:60e3:5b70:6573]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 24344136; Tue, 20 Oct 2020 12:32:47 +0200 (CEST) Date: Tue, 20 Oct 2020 12:32:44 +0200 From: Andreas Enge To: Ludovic =?iso-8859-15?Q?Court=E8s?= Subject: Re: Using #true and #false everywhere? Message-ID: <20201020103244.GB6805@jurong> References: <875z7a78ww.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <875z7a78ww.fsf@gnu.org> Received-SPF: neutral client-ip=185.233.100.1; envelope-from=andreas@enge.fr; helo=hera.aquilenet.fr X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/20 06:32:48 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_NEUTRAL=0.779 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: 0.49 X-TUID: pA26I5GSuYRl And since we are on the bikeshedding front, I feel like writing a second message. On Fri, Oct 16, 2020 at 12:38:23PM +0200, Ludovic Courtès wrote: > As discussed on IRC recently, several of us think that using “#true” and > “#false” instead of “#t” and “#f” throughout or documentation and code > would probably make it easier for newcomers to decipher that. Honestly, I think either of them is sufficiently easy to understand, in the presence of much more difficult questions: - The "non-typedness of booleans": Does "(if 1 2 3)" raise an exception or work, and if the latter is true, what is the result? And if I replace "1" by "0" or the empty list? (In Guix, this is related to the question: Do I need to add #t or #f at the end of a phase, or is the value of its last statement sufficient?) - What are the different procedures for comparing things? - What are quotes, quasiquotes, unquotes? How do they relate to code staging in Guix? (This is to me the most difficult part of Guix code, in particular for someone coming from a language where code is code and data are data.) - Actually, why are there two ways to define literal lists? Do they have the same result? This is a mixture of the previous two questions; try (eq? '(1) '(1)) vs. (eq? '(1) (list 1)) or (eq? (list 1) (list 1)) Then try again with eqv? and equal?. Then try again with "(eq? '() (list))" and so on. (This one still surprises me.) Does it matter? (Probably not much in the context of Guix.) - If I want to know what are and what happens in the phases of the perl build system, do I look in build/perl-build-system.scm or build-system/perl.scm? Why is there no build-system/perl-build-system.scm or build/perl.scm instead? (Just a little trolling at the end of my post, no real harm intended ;-) But I am honestly unable to remember the answer, and look at the two files every time I wonder about a build system, which is of course entirely feasible, some might even argue instructional.) Andreas