Re: Back & Forth - Co-routines

Liste des GroupesRevenir à cl forth 
Sujet : Re: Back & Forth - Co-routines
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.lang.forth
Date : 08. Feb 2025, 12:06:27
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2025Feb8.120627@mips.complang.tuwien.ac.at>
References : 1 2 3 4 5 6 7 8 9 10
User-Agent : xrn 10.11
minforth@gmx.net (minforth) writes:
However, does this work in gforth?
>
: n+ ( n -- xt ) {: n :} [: n + ;] ;
5 n+ constant 5+
10 n+ constant 10+  ( 2nd instance )
2 5+ .  ( 7 )
2 10+ .  ( 12 )
3 5+ .  ( 8 )

: n+ ( n -- xt ) [{: n :}d n + ;] ;
5 n+ constant 5+-xt
10 n+ constant 10+-xt
2 5+-xt execute .   \ output: 7
2 10+-xt execute .  \ output: 12
3 5+-xt execute .   \ output: 8

The :}D means that the closure data is stored in the dictionary; there
is also :}L (for locals, deallocated when the surrounding definition
is exited), :}H (heap, deallocated with FREE-CLOSURE), and :}H1 (heap,
deallocated right after the first (and only) execution).

For the common cases of passing one cell or one double, or one FP
value to a closure, there are also pure-stack closures:

: n+ ( n -- xt ) [n:d + ;] ;

works just like the locals-using N+ above.  We have several numbers
[T:A where T is the type (N for cell, D for double, F for float), and
A is the allocation (L for local, D for dictionary, H for heap,
currently no H1).

- anton
--
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
     New standard: https://forth-standard.org/
EuroForth 2023 proceedings: http://www.euroforth.org/ef23/papers/
EuroForth 2024 proceedings: http://www.euroforth.org/ef24/papers/

Date Sujet#  Auteur
31 Jan 25 * Re: Back & Forth - Co-routines91dxf
31 Jan 25 +- Re: Back & Forth - Co-routines1Anton Ertl
31 Jan 25 +- Re: Back & Forth - Co-routines1albert
31 Jan 25 +* Re: Back & Forth - Co-routines14Hans Bezemer
1 Feb 25 i`* Re: Back & Forth - Co-routines13dxf
1 Feb 25 i `* Re: Back & Forth - Co-routines12Anton Ertl
1 Feb 25 i  +* Re: Back & Forth - Co-routines4dxf
1 Feb 25 i  i+- Re: Back & Forth - Co-routines1albert
1 Feb 25 i  i`* Re: Back & Forth - Co-routines2Anton Ertl
2 Feb 25 i  i `- Re: Back & Forth - Co-routines1dxf
2 Feb 25 i  `* Re: Use of { and } was Re: Back & Forth - Co-routines7dxf
2 Feb 25 i   `* Re: Use of { and } was Re: Back & Forth - Co-routines6Anton Ertl
2 Feb 25 i    +- Re: Use of { and } was Re: Back & Forth - Co-routines1dxf
2 Feb 25 i    +* Re: Use of { and } was Re: Back & Forth - Co-routines2Anton Ertl
2 Feb 25 i    i`- Re: Use of { and } was Re: Back & Forth - Co-routines1Bernd Linsel
6 Feb 25 i    `* Re: Use of { and } was Re: Back & Forth - Co-routines2Waldek Hebisch
6 Feb 25 i     `- Re: Use of { and } was Re: Back & Forth - Co-routines1dxf
1 Feb 25 +* Re: Back & Forth - Co-routines70Ruvim
2 Feb 25 i+- Re: Back & Forth - Co-routines1dxf
2 Feb 25 i+* Re: Back & Forth - Co-routines2Paul Rubin
3 Feb 25 ii`- Re: Back & Forth - Co-routines1dxf
3 Feb 25 i`* Re: Back & Forth - Co-routines66Ruvim
3 Feb 25 i +* Re: Back & Forth - Co-routines57albert
3 Feb 25 i i`* Re: Back & Forth - Co-routines56Paul Rubin
4 Feb 25 i i `* Re: Back & Forth - Co-routines55albert
6 Feb 25 i i  +* Re: Back & Forth - Co-routines2HenryHH
6 Feb 25 i i  i`- Re: Back & Forth - Co-routines1albert
6 Feb 25 i i  `* Re: Back & Forth - Co-routines52minforth
6 Feb 25 i i   +* Re: Back & Forth - Co-routines2albert
6 Feb 25 i i   i`- Re: Back & Forth - Co-routines1minforth
6 Feb 25 i i   `* Re: Back & Forth - Co-routines49Anton Ertl
6 Feb 25 i i    `* Re: Back & Forth - Co-routines48minforth
6 Feb 25 i i     +* Re: Back & Forth - Co-routines19dxf
6 Feb 25 i i     i+* Re: Back & Forth - Co-routines2minforth
7 Feb 25 i i     ii`- Re: Back & Forth - Co-routines1sjack
6 Feb 25 i i     i`* Re: Back & Forth - Co-routines16Anton Ertl
6 Feb 25 i i     i +- Re: Back & Forth - Co-routines1minforth
7 Feb 25 i i     i `* Re: Back & Forth - Co-routines14dxf
7 Feb 25 i i     i  +* Re: Back & Forth - Co-routines2minforth
7 Feb 25 i i     i  i`- Re: Back & Forth - Co-routines1dxf
8 Feb 25 i i     i  `* quotations (was: Back & Forth - Co-routines)11Anton Ertl
9 Feb 25 i i     i   +* Re: quotations9dxf
9 Feb 25 i i     i   i+* Re: quotations4Paul Rubin
9 Feb 25 i i     i   ii`* Re: quotations3dxf
9 Feb 25 i i     i   ii `* Re: quotations2Paul Rubin
9 Feb 25 i i     i   ii  `- Re: quotations1minforth
9 Feb 25 i i     i   i`* Re: quotations4Anton Ertl
9 Feb 25 i i     i   i +- Re: quotations1albert
10 Feb 25 i i     i   i `* Re: quotations2dxf
10 Feb 25 i i     i   i  `- Re: quotations1albert
9 Feb 25 i i     i   `- Re: quotations (was: Back & Forth - Co-routines)1albert
6 Feb 25 i i     +* Re: Back & Forth - Co-routines27Anton Ertl
6 Feb 25 i i     i+- Re: Back & Forth - Co-routines1minforth
7 Feb 25 i i     i`* Re: Back & Forth - Co-routines25minforth
8 Feb 25 i i     i `* Re: Back & Forth - Co-routines24Anton Ertl
8 Feb 25 i i     i  +* Re: Back & Forth - Co-routines4minforth
9 Feb 25 i i     i  i`* Re: Back & Forth - Co-routines3Paul Rubin
9 Feb 25 i i     i  i +- Re: Back & Forth - Co-routines1minforth
9 Feb 25 i i     i  i `- Re: Back & Forth - Co-routines1Anton Ertl
9 Feb 25 i i     i  `* Re: Back & Forth - Co-routines19Paul Rubin
9 Feb 25 i i     i   +* Re: Back & Forth - Co-routines3minforth
9 Feb 25 i i     i   i`* Re: Back & Forth - Co-routines2Paul Rubin
10 Feb 25 i i     i   i `- Re: Back & Forth - Co-routines1minforth
10 Feb 25 i i     i   `* Re: Back & Forth - Co-routines15Anton Ertl
10 Feb 25 i i     i    +* Re: Back & Forth - Co-routines8ahmed
10 Feb 25 i i     i    i`* Re: Back & Forth - Co-routines7Anton Ertl
10 Feb 25 i i     i    i +- Re: Back & Forth - Co-routines1ahmed
10 Feb 25 i i     i    i +- Re: Back & Forth - Co-routines1minforth
10 Feb 25 i i     i    i +* Re: Back & Forth - Co-routines3mhx
10 Feb 25 i i     i    i i+- Re: Back & Forth - Co-routines1albert
10 Feb 25 i i     i    i i`- Re: Back & Forth - Co-routines1Paul Rubin
10 Feb 25 i i     i    i `- Re: Back & Forth - Co-routines1albert
10 Feb 25 i i     i    `* Re: Back & Forth - Co-routines6Paul Rubin
11 Feb 25 i i     i     `* Re: Back & Forth - Co-routines5minforth
11 Feb 25 i i     i      `* Re: Back & Forth - Co-routines4Paul Rubin
12 Feb 25 i i     i       +- Re: Back & Forth - Co-routines1albert
12 Feb 25 i i     i       `* Re: Back & Forth - Co-routines2minforth
14 Feb 25 i i     i        `- Multi-Tasking (was: Back & Forth - Co-routines)1Anton Ertl
7 Feb 25 i i     `- Re: Back & Forth - Co-routines1minforth
22 Mar 25 i `* Re: Back & Forth - Co-routines8sjack
23 Mar 25 i  `* Re: Back & Forth - Co-routines7dxf
23 Mar 25 i   +* Re: Back & Forth - Co-routines2sjack
24 Mar 25 i   i`- Re: Back & Forth - Co-routines1sjack
24 Mar 25 i   +- Re: Back & Forth - Co-routines1sjack
24 Mar 25 i   `* Re: Back & Forth - Co-routines3dxf
24 Mar 25 i    `* Re: Back & Forth - Co-routines2dxf
24 Mar 25 i     `- Re: Back & Forth - Co-routines1dxf
11 Mar 25 `* Re: Back & Forth - Co-routines4dxf
21 Mar 25  `* Re: Back & Forth - Co-routines3dxf
21 Mar 25   `* Re: Back & Forth - Co-routines2dxf
22 Mar 25    `- Re: Back & Forth - Co-routines1dxf

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal