Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #135469

Re: dynamic scoping in Forth in one line of code

Path csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail
From Paul Rubin <no.email@nospam.invalid>
Newsgroups comp.lang.forth
Subject Re: dynamic scoping in Forth in one line of code
Date Fri, 28 Aug 2026 18:12:48 -0700
Organization A noiseless patient Spider
Lines 8
Message-ID <87y0dplofj.fsf@nightsong.com> (permalink)
References <87bjamc5xh.fsf@debian>
MIME-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
Injection-Date Sat, 29 Aug 2026 01:12:49 +0000 (UTC)
Injection-Info dont-email.me; logging-data="3001068"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IMcFY7jpHx89y3SFhFExX"; posting-host="6dfd35adcf802a6459ae63f5abc2ac7a"
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock sha1:CGBcz5oTGuXzm+5MqzWmwWVnZf4= sha1:CBK0jNjrzUU8GCXIkI1QRapOnI4= sha256:Vy5TySAMhR7oJcvedKeVYLxa1gBRdjfirBOlCZvvrqM= sha1:ukr+jy0qZ7ZBJWNa1K+QVAjNfGA= sha256:nHMkngTFA9R8UYvNvYOVy4LgT1LX6X9K8zZwUP+nE5A=
Xref csiph.com comp.lang.forth:135469

Show key headers only | View raw


Kragen Javier Sitaker <kragen@canonical.org> writes:
> A couple of years ago, I noticed that it’s possible to implement
> Lisp-style dynamic scoping in standard Forth in one line of code:
>
>     : (let!) dup @ over swap 2r> rot >r rot >r >r >r ! ; : let! (let!) 2r> ! ;

You need to still restore the old value when the function exits by
exception or THROW.  So you have to use something like CATCH.

Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

dynamic scoping in Forth in one line of code Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-28 18:04 -0300
  Re: dynamic scoping in Forth in one line of code Paul Rubin <no.email@nospam.invalid> - 2026-08-28 18:12 -0700
    Re: dynamic scoping in Forth in one line of code Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-29 10:50 -0300
  Re: dynamic scoping in Forth in one line of code albert@spenarnc.xs4all.nl - 2026-08-29 12:10 +0200
    Re: dynamic scoping in Forth in one line of code Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-29 11:17 -0300
      Re: dynamic scoping in Forth in one line of code albert@spenarnc.xs4all.nl - 2026-08-30 12:49 +0200
        Re: dynamic scoping in Forth in one line of code Kragen Javier Sitaker <kragen@canonical.org> - 2026-09-01 20:38 -0300
          Re: dynamic scoping in Forth in one line of code Paul Rubin <no.email@nospam.invalid> - 2026-09-01 17:15 -0700
            coroutines (was Re: dynamic scoping in Forth in one line of code) Kragen Javier Sitaker <kragen@canonical.org> - 2026-09-03 20:38 -0300
              Re: coroutines (was Re: dynamic scoping in Forth in one line of code) dxf <dxforth@gmail.com> - 2026-09-04 15:24 +1000
                dynamic scoping in Forth in one line of code (was Re: coroutines) Kragen Javier Sitaker <kragen@canonical.org> - 2026-09-04 13:04 -0300
                Re: dynamic scoping in Forth in one line of code (was Re: coroutines) dxf <dxforth@gmail.com> - 2026-09-05 02:59 +1000

csiph-web