From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: wolf Newsgroups: gmane.lisp.guile.user Subject: Does declaration order matter in guile? Date: Sun, 12 Feb 2023 19:46:59 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="oiI00dvhNU7L4Ihq" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17017"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sun Feb 12 19:47:36 2023 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 1pRHNv-0004Cy-PA for guile-user@m.gmane-mx.org; Sun, 12 Feb 2023 19:47:35 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pRHNW-0002ij-4m; Sun, 12 Feb 2023 13:47:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pRHNU-0002iH-Dd for guile-user@gnu.org; Sun, 12 Feb 2023 13:47:08 -0500 Original-Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pRHNS-0005lM-7P for guile-user@gnu.org; Sun, 12 Feb 2023 13:47:08 -0500 Original-Received: by wolfsden.cz (Postfix, from userid 104) id 31DB41EF9C5; Sun, 12 Feb 2023 18:47:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1676227621; bh=vR/oSxaYhoVPezL5Xc+BvnZSJ1tJRFUSEY3Ar7eH56A=; h=Date:From:To:Subject; b=p8/kcsNpSgcpNDzddi1uYHjjRSSAHz2tIgimIFV508XqvxSqNOogm/yLCN9Cj6tC/ X1uCkhWbmrWFhVuOOTgUMbMkoTn+O1cA/EGqh7vv1Td/ykULoByT5HRZNX2+A54APD aRuBjHPAO3L4iH7MPnFotMq7TLe7oSXBS1CQNe0Qvlmz5u+j+4oHKF1+CyVmIFvdHz ojXUR5746qzPDqJrPMsftO1l/Na7boYgxurNhuSA6lCugoQkZ35mTOHo2PN7BfLNGC SMClG/tDarCFODBoneFBBJ+WcI9v22nF5LyzxwBjlCHUewTlLCmyDTuj/gco6+0Sig qyGFgcZsWIbxMoRgz47jCQHRbFWgKO56dRDP3WeP06n92aGrII3RIME1bI+4eLITf1 0su+1zwYRV9wgDBJnCyZbCSbov+TgQRYAkTJ+RfuEL9SP4ILMJLi/YJv8xyIPuYO0f FHAwVwzB+G0RE/u3vO2DLkNFmCeIfONHUosKa/rD765Umkws11BBnHWEpQMdv7lEJ3 efL5if9qfVTeYJ8R0m462x1RDipnN/2ozkadw5JU3Ci0TBppd7CbJUedANBDNB77A3 y2LYRwERGC1Hihe8v8CaOocwnYvhYFpCOWmhdwIHd7tQamoxTI5R7jbLxnfG4PaFSQ oQDLKkYEuDTUd/gVeztog6Es= Original-Received: from localhost (unknown [128.0.188.242]) by wolfsden.cz (Postfix) with ESMTPSA id A43241EF410 for ; Sun, 12 Feb 2023 18:47:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1676227620; bh=vR/oSxaYhoVPezL5Xc+BvnZSJ1tJRFUSEY3Ar7eH56A=; h=Date:From:To:Subject; b=BPr0mMfWNNnEurEdqdDCuCKWZSodkGVUIfN5OPNjckbmkfVesG/J4HRPILeu1ZEdI 2LXawwXYNwzUruFpaGqjBmwI0HpvST5x3A7+00Uyllg4aSAIO/dAN1ckiDzyR2Ca+i svM7b/KyOhJzJ9WrBhBj/Am4m7pKe7O5pCj/LMBkrYm6zKBtToeWEZdZCdES9/tf3m JjzRYKisQAP+fUQv3OunSVdaa2EQz2I4pJCB63AGYBcLhYg/A3w1DcP/xeoGnL0VHK LKTzKkHDLjdPwxdVMM2CQE6BEXYGdC197roMRC0oes/GcLlxrTMnxQu3VuzpwIEBvE PsXtIuwL/wSpAHcoC3lvu0Py3wQBUrfDm9upRY2c5Z+zLAZx1Nl6q9CsCHrAA4yYWr Zsw5FhDW0ImPhy0/aX9RK+7s22HQQQqMivil7HpVQTGITSkmxVYroMy20v2P/5YjWB FjXYKFLav+CGek4lscQXTq81uf0eeO2rDr8gnJjOLjczT4mOP2SAqCYtH9Dlhe8cx+ +OpycBwWL7ivJczhkMMUgWnaOLZKBJyzKtKbgGW/xi0JLFpTKcG+/eaX/IYWAgr9Ay U0MiH/CItR07tKZK8KWb5pMTtkDcnEuQeaGKAxXYVMZB2XkxkShBrfgbTx7npV4t6z ULHfNRQP/mS/ArDfOBuGWKtM= Mail-Followup-To: guile-user@gnu.org Content-Disposition: inline Received-SPF: pass client-ip=37.205.8.62; envelope-from=wolf@wolfsden.cz; helo=wolfsden.cz X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:18902 Archived-At: --oiI00dvhNU7L4Ihq Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, I had encountered interesting thing yesterday, which challenged my understanding of guile (scheme). I always assumed that order of definitions= in scheme does not matter, as long as everything if defined when it is running. So this should (and does) work: (define (x) (y)) (define (y) (display "foo\n")) (x) However, then I wanted to used SRFI-9. I did use similar pattern, and it failed. The test code for that is: (use-modules (srfi srfi-9)) =20 (define (x y) (display (foo y)) (newline)) =20 (define-record-type q (make-q foo) q? (foo foo)) =20 (x (make-q "1")) The error I got was: Backtrace: In ice-9/boot-9.scm: 1752:10 7 (with-exception-handler _ _ #:unwind? _ # _) In unknown file: 6 (apply-smob/0 #) In ice-9/boot-9.scm: 724:2 5 (call-with-prompt ("prompt") # =E2=80=A6) In ice-9/eval.scm: 619:8 4 (_ #(#(#))) In ice-9/boot-9.scm: 2836:4 3 (save-module-excursion #) 4388:12 2 (_) In /tmp/q/srfi-9.scm: 4:11 1 (x _) 4:11 0 (x _) =20 /tmp/q/srfi-9.scm:4:11: In procedure x: Wrong type to apply: # When I move the (define-record-type ...) call above (define (x...) it start= s to works. Also, I could not help to notice that when I use R6RS records it does work regardless of the order: (use-modules (rnrs records syntactic)) =20 (define (x y) (display (q-foo y)) (newline)) =20 (define-record-type q (fields foo)) =20 (x (make-q "1")) So, I have few questions I would like to ask: 1. When does order matter? What is going on here? 2. Why does guile recommend SRFI-9 over the R6RS records? They seem less verbose and more robust. At least to novice like me. 3. What does guile implement by default? There are --r6rs and --r7rs argume= nts, what scheme is used when neither is supplied? R5RS? Sorry if this is stu= pid question, the scheme landscape seems... complicated. 4. Is the (install-r6rs!) global and affecting all reading from that point = on or is it scoped to the file being currently read? I ask because I am cur= ious if I can mix files using R6RS and R7RS in one program. Thank you very much, W. --=20 There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. --oiI00dvhNU7L4Ihq Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmPpNCMACgkQL7/ufbZ/ waknYQ/+Ml1m8mpienblR6t+0iBboD091RvXCmY5d2VxC3wcOqKHKeMNDQkqw1bc Lk+h0BHA45x6cN4YbZmBd+yk3CuKJqrTK1ha5PLVf47VJEvBY8NW6H7zwKsbH7EP rdYJ4GQ5HEDxzpW7C0NWhFetdY6mVzKjQCA3Bt2r2IImlgjgSMgh82oZXFIJTtGJ wLAwzRhHfpVvgaqh5n1GZ9QJKH06binRXzNhmkjaaVz2h+Q7o5uQ+3obW57KCIfp 3DTccmQ+wwL+SMRrkJBvJxbH8OBCkV2Lkw3Nbx9lUid8/IgG3aTDqrjtZstc5gs/ fjBB8WOtUWYbCvWHpq6l2K+YDpy07l6DIW0IklLGpyzC/gqI3bLsK5+hmqG03n/L 7mBMmBZqIuJYhI+DfSNt2dvzJDniHMnsaHG9UnB8X4EV2KyJ3wCVz3uHwyjnXyel b3/41kTVe+nKTw1g143xlsFRZDzQ1ZdtYijVEo+/MADtaCxYACkV/OhQwaB5zAS2 lztqzJgRAHqWVbnCQlLkH4My3PWWS9dD44q8JX3sCJb7Hc6NkeHjKTOAAc+gRNWT UtEveyUGOf7aewk5TmKVa5SfGaEzF7f6NPmh0nCOMmHM+FPrL7PcTmLfMskVHIwH sBGMqHaJIvxO6S4bU8cvJpSCuS8h6/s7hI0aAiaK51rjCW6pyBI= =86Bx -----END PGP SIGNATURE----- --oiI00dvhNU7L4Ihq--