From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Abou Samra Newsgroups: gmane.lisp.guile.user Subject: Syntax objects as traditional pairs Date: Tue, 5 Apr 2022 01:00:04 +0200 Message-ID: <1024dc44-d9f2-80b5-4b26-01a3779052ee@abou-samra.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8142"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Tue Apr 05 01:00:28 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 1nbVgR-0001vB-Jk for guile-user@m.gmane-mx.org; Tue, 05 Apr 2022 01:00:27 +0200 Original-Received: from localhost ([::1]:45270 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nbVgQ-0005Yc-6U for guile-user@m.gmane-mx.org; Mon, 04 Apr 2022 19:00:26 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:40644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbVg8-0005YC-Hw for guile-user@gnu.org; Mon, 04 Apr 2022 19:00:08 -0400 Original-Received: from mout.kundenserver.de ([217.72.192.75]:48377) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbVg6-0007t0-Ho for guile-user@gnu.org; Mon, 04 Apr 2022 19:00:08 -0400 Original-Received: from [10.188.216.67] ([46.193.67.184]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.184]) with ESMTPSA (Nemesis) id 1M1Hi8-1nYkn81jp4-002kcm for ; Tue, 05 Apr 2022 01:00:04 +0200 Content-Language: en-US X-Provags-ID: V03:K1:mtVNKvXdkZvM9FiJ/5jQwk8YZhdGcsrlQCgW2kcXWBzOEx+CJNN mUyocWMRQ6s5ybdS1tFHosRuvAENaOaKVY7WNhO6/0a7FxOURlU6B26R4+ZSUKlojyrhJCz fyHZKan0Wxj0q/K0hkVTWP9BeX9GKXBUoTrNJ6Ry5m4k2HkaccvEOTS9pvlzmQcRjKROfhF M/lu/ZGgwqAajICmKsDJw== X-UI-Out-Filterresults: notjunk:1;V03:K0:swn9hKQ23+s=:EC/ohfbcw32E26Xn/7LSUX IA7abxQ1rmUiueMv0jMppdaDlV4jTn5UzHasLreTDntEB6/MqOlMH7vWmGD+OHPu0+1M1Yq7G KrWEXCe3ggrYK2pjxhHTSpNhABOU+L2ZfuODxfIeCxVgh0OFScdE0W9ER3gX5BffihXVzKhX/ rfLsxLbaG5tll7dC8aNfzGDhK1JhGlsb6gg0rhgTYRNpC00KtUlw/VoEpcwecRh3uuIwbgJdt nfrSKxHVlIpMESKRmkWsVV2dGxKlqa98ihgJ51w2MGfOc+mv3u8AajnvrhMYJXDbsQUbxtzsP Z2T7Uf68LzzvWN/D9x9ByflnD1HNSbEX0Q07SI156r8vdI4zBdU0ONG3SYyPdVUfrOY04eZYG Vix7uykT92JTyCXKtioyuKoRlHXCoYOVeiKz33Qcd2LECitsptejNLtRc5MviPMSszRuefh03 D3dH5fBQwGNtPImJORGmgkYQT6vvkYmBhKsabEOFhLwiWX823z5PbQ4UHtYe9yxQgtNy0VejJ iHGD5sre7SGT26ZaGNu0zY/J2iEqOgY3WhKUur4jCHoASCVmFdjdbOvf17Jk5bAlSW2106TGu Gjxn0cs2DysG3u9ByT23pdKWlo2h7gM36o4HeOMO+pslo1PsK8bEoDR0Zy9Gr0kHqdTUVK66j MD8UKvbieLzAt93R42lOzwzFc6Q1/Itgk+qYWahCTwaSW73d12TijW+v6uJEIDQ7iRAQ= Received-SPF: none client-ip=217.72.192.75; envelope-from=jean@abou-samra.fr; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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:18229 Archived-At: Hi, I am lost as to when a syntax object whose syntax->datum is a pair can be manipulated as a plain Scheme pair. For example: (define synt1 #'(a b)) (pk 'syntax synt1 'pair? (pair? synt1)) (pk 'car (car synt1)) (define-syntax mysyntax   (lambda (stax)     (syntax-case stax ()       ((_ thing)        (begin          (pk 'syntax #'thing 'pair? (pair? #'thing))          (pk 'car (car #'thing))))))) (mysyntax (c d)) results in ;;; (syntax (# #) pair? #t) ;;; (car #) ;;; (syntax # pair? #f) Backtrace:            7 (primitive-load "/home/jean/repos/lilypond/build/test.s…") In ice-9/eval.scm:    721:20  6 (primitive-eval (mysyntax (c d))) In ice-9/psyntax.scm:   1229:36  5 (expand-top-sequence (#) …)   1121:20  4 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)   1342:32  3 (syntax-type (mysyntax #) # …)   1562:32  2 (expand-macro # …) In ice-9/eval.scm:     159:9  1 (_ #(#(#) #))     155:9  0 (_ _) ice-9/eval.scm:155:9: In procedure car: Wrong type argument in position 1 (expecting pair): # Why does one syntax object look like a pair and not the other? What is the difference between the two cases? Thanks, Jean