unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
To: wolf <wolf@wolfsden.cz>
Cc: Taylan Kammer <taylan.kammer@gmail.com>, guile-user@gnu.org
Subject: Re: Does declaration order matter in guile?
Date: Tue, 14 Feb 2023 21:26:54 +0100	[thread overview]
Message-ID: <87mt5gj78c.fsf@web.de> (raw)
In-Reply-To: <Y+vob884XBXd9h4V@ws>

[-- Attachment #1: Type: text/plain, Size: 2071 bytes --]


wolf <wolf@wolfsden.cz> writes:

>> 1. You bind 'foo' to the syntax transformer.
>> 
>> 2. During the compilation of (foo y), the compiler calls the syntax transformer to
>>    affect the generation of code, so it will do the right thing.
>
> Interesting, I think I understand the difference. So in some ways this can be
> compared to the C pre-processor? Is there a way to view the resulting code
> after all the transformations were applied?

In the guile shell you can use

,expand (foo 1)

to see what it expands to.

Also see

,h compile

> Meaning that if I want to use the many guile- libraries available under guix
> and elsewhere, the most pragmatic approach would be to just not care about R6RS
> vs R7RS all that much, and just do what guile manual recommends. Correct?

R7RS vs. R6RS isn’t that big of a difference in Guile, because it mostly
supports both and you can mostly use either of them.

R7RS is cleaner is some ways and managed to re-unite some of the Scheme
implementations (that were split between R5RS and R6RS). So knowing R7RS
means that you can make your code run in a much larger number of
domains, and you can keep many of your skills even when moving from
mostly server-side webdev (i.e. Chicken or Guile¹) to embedded (Chibi),
or to shipping binaries(i.e. Gambit or bigloo), or even Java/JWM (kawa),
or to others (see https://ecraven.github.io/r7rs-benchmarks/).

Why Guile? https://www.draketo.de/software/guile-10x
Why others? https://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations

¹: partially moving into clientside via Guilescript or others:
   https://www.draketo.de/software/wisp#guilescript-2023-01-10
   https://srfi-email.schemers.org/schemeweb/msg/11606995/
   https://github.com/schemeweb/wiki/wiki/frontend

Also Spritely started working on Guile on WebAssembly:
https://spritely.institute/news/guile-on-web-assembly-project-underway.html

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1125 bytes --]

  reply	other threads:[~2023-02-14 20:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-12 18:46 Does declaration order matter in guile? wolf
2023-02-12 19:52 ` Taylan Kammer
2023-02-13  8:05   ` Sascha Ziemann
2023-02-13 10:44     ` Dr. Arne Babenhauserheide
2023-02-13 17:07     ` Maxime Devos
2023-02-14 20:00   ` wolf
2023-02-14 20:26     ` Dr. Arne Babenhauserheide [this message]
2023-02-13 17:10 ` Maxime Devos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mt5gj78c.fsf@web.de \
    --to=arne_bab@web.de \
    --cc=guile-user@gnu.org \
    --cc=taylan.kammer@gmail.com \
    --cc=wolf@wolfsden.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).