From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Taylan Kammer Newsgroups: gmane.lisp.guile.user,gmane.lisp.guile.devel Subject: Re: case source code Date: Mon, 12 Sep 2022 10:47:37 +0200 Message-ID: <603460d9-e0a3-b5d5-e38a-977dfbc20285@gmail.com> 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="24076"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 To: Damien Mattei , guile-user , guile-devel Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Mon Sep 12 10:48:09 2022 Return-path: Envelope-to: guile-user@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 1oXf6u-00066Z-20 for guile-user@m.gmane-mx.org; Mon, 12 Sep 2022 10:48:08 +0200 Original-Received: from localhost ([::1]:38914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oXf6s-00062s-0w for guile-user@m.gmane-mx.org; Mon, 12 Sep 2022 04:48:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44962) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oXf6W-00062b-6l; Mon, 12 Sep 2022 04:47:44 -0400 Original-Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]:36842) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oXf6U-0001No-It; Mon, 12 Sep 2022 04:47:43 -0400 Original-Received: by mail-ej1-x631.google.com with SMTP id lz22so18500222ejb.3; Mon, 12 Sep 2022 01:47:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=HOXKzCADUdQSYCZ9j79EstvHB/ArRMdqRuW3UNfk+U8=; b=psJwa0QOnBOpy4Kv2m+dbvWXW69z8OkL/cLkpwf6a6hNkvTBZlrM+W7E50SrcXgZT1 AGFh4IiUG7i4IcLz8w5sRj8Dg7AHmYXzoclwkqR2uKjabPJHZ2rQR4wjUSF/vgEhMNov aUrjtpHeX0V7UBzAh47wd8vp3RsPeelJpX8LCU7jLkeVpZVat7VMbKpzIpX3cSvOtaIm 8EhO6+6mr1K7OxddSrwuUjxE81rOujin/PVpyLNAYNOpeLzFU12zpvJBnKGh7FH9fNep cyfsRtbHWX52QoEGOM+bFb2B2Ir5lQAZ4GMSBjT6UfkGKktoJ9hvEWnwaDEaxUyRHDsg qD2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=HOXKzCADUdQSYCZ9j79EstvHB/ArRMdqRuW3UNfk+U8=; b=2vrHqOoqMoDhsmTmfqb55D1crdPX+GK16JhnwgpzypmhI5RUNZuKQ1NbQUYSS7fblR la/qSAAtIH1/NdBPUic/oUdQG4rd9DrXfiy95hyshlJ4Dl+6tR5b0jqalIPlF6C3puJ6 FODGaBw6FJhTWb5ToShBXTBmOAZ+aNj10aL3UyAZrRbObTy1cJj5K2Zd8G1uFcQMEyes u+fV0oEW6CWSI1bzOyDZpCz/cweG62QgtwrtnBGJjqasqtSGlKbwQfLTxqw7CeQB8Nkv 7l+nXZExVFFvbS8aAiIg+U0Z00ay7lAJwEO3QtIUfnyROSAJii8pe1q37QYAVuY6EdBy duXQ== X-Gm-Message-State: ACgBeo3ifSyQ8s5IqAUkRdU52NXvKuB1fvgc2J9H8H6yaCHwvzYGqs0I FQ/Tg9xApxzclFAfzwT2eFA= X-Google-Smtp-Source: AA6agR7cE7IYpUFRCkl2L7LTe2s6KTKigibEQt0opy5OJrMyQ3lpO4Ugp7tc4TacajA+dCNxGZoDqw== X-Received: by 2002:a17:907:c002:b0:73d:d96c:c632 with SMTP id ss2-20020a170907c00200b0073dd96cc632mr17911908ejc.543.1662972460463; Mon, 12 Sep 2022 01:47:40 -0700 (PDT) Original-Received: from [192.168.178.20] (ip-109-090-125-150.um36.pools.vodafone-ip.de. [109.90.125.150]) by smtp.gmail.com with ESMTPSA id fp17-20020a1709069e1100b007794a742094sm4124397ejc.111.2022.09.12.01.47.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Sep 2022 01:47:40 -0700 (PDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::631; envelope-from=taylan.kammer@gmail.com; helo=mail-ej1-x631.google.com X-Spam_score_int: -61 X-Spam_score: -6.2 X-Spam_bar: ------ X-Spam_report: (-6.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-4.101, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:18583 gmane.lisp.guile.devel:21347 Archived-At: On 12.09.2022 09:42, Damien Mattei wrote: > > Hello, > i can not find in the scheme community a definition of 'case in term of macro as for when, unless,while,do... does anyone have it? > thanks, > Damien The RnRS often contain such definitions. The following is taken from R7RS-small: (define-syntax case (syntax-rules (else =>) ((case (key ...) clauses ...) (let ((atom-key (key ...))) (case atom-key clauses ...))) ((case key (else => result)) (result key)) ((case key (else result1 result2 ...)) (begin result1 result2 ...)) ((case key ((atoms ...) result1 result2 ...)) (if (memv key ’(atoms ...)) (begin result1 result2 ...))) ((case key ((atoms ...) => result)) (if (memv key ’(atoms ...)) (result key))) ((case key ((atoms ...) => result) clause clauses ...) (if (memv key ’(atoms ...)) (result key) (case key clause clauses ...))) ((case key ((atoms ...) result1 result2 ...) clause clauses ...) (if (memv key ’(atoms ...)) (begin result1 result2 ...) (case key clause clauses ...)))) -- Taylan