Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #50682
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Rosetta Code: Catamorphism |
| Date | 2016-09-05 07:13 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <2016Sep5.091302@mips.complang.tuwien.ac.at> (permalink) |
| References | (4 earlier) <cbdcd712-4fc3-4aa5-b647-221e43fc12a5@googlegroups.com> <2016Aug29.185823@mips.complang.tuwien.ac.at> <2fd53f27-16d9-431c-bf39-ec16c6be9f38@googlegroups.com> <2016Aug29.225348@mips.complang.tuwien.ac.at> <c76b775f-d3e6-44f8-a601-3fa83e1c2172@googlegroups.com> |
peter.m.falth@gmail.com writes:
>On Monday, 29 August 2016 23:16:15 UTC+2, Anton Ertl wrote:
>> The basic idea behind ]]...[[ is that ] switches to the next more
>> delaying state (from interpretation to compilation, from compilation
>> to postponing), and [ to the next less delaying state (from postponing
>> to compiling, from compiling to interpreting); however, unfortunately,
>> the standard specifies "]" in a way that does not allow working the
>> way envisioned above, so "]]" was introduced instead, and "[[" to go
>> with it. And the current implementation only do the switching from
>> compilation to postponing, and back, not the full monty.
>>
>> It may be more obvious why the brackets have this direction, if you
>> want to have some intermediate compilation action in the middle of the
>> postponeing, e.g.:
>>
>> : derivative { xt1 F: r -- xt2 }
>> :noname ]]
>> fdup [[ r ]] fliteral f+ [[ xt1 compile, ]] fswap [[ xt1 compile, ]] f-
>> [[ r ]] fliteral f/ ;
>> [[ ;
>>
>> >it really looks backwards now!
>>
>> Looking at the DERIVATIVE example, do you still think so?
>
>Yes and it looks real horrible. I would have written
>
>: derivative { xt1 F: r -- xt2 }
> :noname
> postpone fdup r postpone fliteral postpone f+ xt1 compile,
> postpone fswap xt1 compile, postpone f-
> r postpone fliteral postpone f/ postpone ;
> ;
I find the bracketed variant much more readable. It's hard to follow
the logic with all the POSTPONEs in between.
One thing I forgot to mention: The idea is also to be able to take the
code out of the colon definition for testing. In this case this would
look like:
1e-6 fvalue r
' fsin value xt1
:noname
fdup [ r ] fliteral f+ [ xt1 compile, ] fswap [ xt1 compile, ] f-
[ r ] fliteral f/ ;
Unfortunately, we cannot use [ and ] for postpone state; what could
work is to let [[ work in compile state and ]] in interpret state,
with the meanings of [ and ] in these states, but there is no
implementation for that yet; with that we could cut and paste most of
the code from DERIVATIVE for interpretation.
The remaining difference is that we have ":noname ]]" in DERIVATIVE,
but just ":noname" interpretively; If we have a factor (say, :NONAME[)
that does not switch to compile state at its run-time, we could use
":noname[ ]]" in both cases.
- 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: http://www.forth200x.org/forth200x.html
EuroForth 2016: http://www.euroforth.org/ef16/
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Rosetta Code: Catamorphism "WJ" <w_a_x_man@yahoo.com> - 2016-08-24 15:27 +0000
Rosetta Code: Catamorphism Julian Fondren <julian.fondren@gmail.com> - 2016-08-24 12:43 -0700
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-25 09:53 +0000
Re: Rosetta Code: Catamorphism Julian Fondren <julian.fondren@gmail.com> - 2016-08-25 06:41 -0700
Re: Rosetta Code: Catamorphism Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-08-25 16:06 -0500
Re: Rosetta Code: Catamorphism foxaudioresearch@gmail.com - 2016-08-25 20:40 -0700
Rosetta Code ( was Re: Rosetta Code: Catamorphism) "HAA" <someone@microsoft.com> - 2016-08-29 12:06 +1000
Re: Rosetta Code ( was Re: Rosetta Code: Catamorphism) Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-08-29 01:41 -0500
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-27 10:01 +0000
Re: Rosetta Code: Catamorphism hughaguilar96@gmail.com - 2016-08-29 01:21 -0700
Re: Rosetta Code: Catamorphism hughaguilar96@gmail.com - 2016-08-29 01:36 -0700
Re: Rosetta Code: Catamorphism Julian Fondren <ayrnieu@gmail.com> - 2016-08-29 07:23 -0700
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-29 16:58 +0000
Re: Rosetta Code: Catamorphism peter.m.falth@gmail.com - 2016-08-29 13:15 -0700
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-29 20:53 +0000
Re: Rosetta Code: Catamorphism peter.m.falth@gmail.com - 2016-08-30 04:47 -0700
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-05 07:13 +0000
Re: Rosetta Code: Catamorphism "HAA" <someone@microsoft.com> - 2016-08-30 11:54 +1000
Re: Rosetta Code: Catamorphism "HAA" <someone@microsoft.com> - 2016-08-31 12:34 +1000
Re: Rosetta Code: Catamorphism "HAA" <someone@microsoft.com> - 2016-08-29 18:44 +1000
Re: Rosetta Code: Catamorphism hughaguilar96@gmail.com - 2016-09-01 23:47 -0700
Re: Rosetta Code: Catamorphism Coos Haak <htrofhc@gmail.com> - 2016-09-02 12:42 +0200
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-02 11:45 +0000
Re: Rosetta Code: Catamorphism Coos Haak <htrofhc@gmail.com> - 2016-09-02 15:01 +0200
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-02 16:04 +0000
Re: Rosetta Code: Catamorphism albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-09-02 16:23 +0200
Re: Rosetta Code: Catamorphism Bruce Axtens <bruce.axtens@gmail.com> - 2016-08-29 18:29 +0800
Re: Rosetta Code: Catamorphism Ron Aaron <rambamist@gmail.com> - 2016-08-29 13:41 +0300
Re: Rosetta Code: Catamorphism Bruce Axtens <bruce.axtens@gmail.com> - 2016-08-31 09:24 +0800
Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-01 13:45 +1000
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-02 21:54 -0700
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-04 07:35 +0100
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-04 00:41 -0700
Re: Standard or Forth? Julian Fondren <julian.fondren@gmail.com> - 2016-09-04 02:55 -0700
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-04 13:26 +0100
Re: Standard or Forth? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-04 13:59 +0000
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-04 23:09 -0700
Re: Standard or Forth? Ron Aaron <rambamist@gmail.com> - 2016-09-05 09:55 +0300
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-05 08:39 +0100
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-04 01:25 -0700
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-04 14:13 +0100
Re: Standard or Forth? Coos Haak <htrofhc@gmail.com> - 2016-09-04 23:16 +0200
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-04 22:33 -0700
Re: Standard or Forth? Ron Aaron <rambamist@gmail.com> - 2016-09-05 09:03 +0300
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-06 23:23 -0700
Re: Standard or Forth? Ron Aaron <rambamist@gmail.com> - 2016-09-07 10:14 +0300
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-07 01:01 -0700
Re: Standard or Forth? Ron Aaron <rambamist@gmail.com> - 2016-09-07 11:18 +0300
Re: Standard or Forth? Cecil Bayona <cbayona@cbayona.com> - 2016-09-07 08:47 -0500
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-05 09:20 +0100
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-05 02:21 -0700
Re: Standard or Forth? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-05 08:10 +0000
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-05 10:51 +0100
Re: Standard or Forth? "Elizabeth D. Rather" <erather@forth.com> - 2016-09-03 08:05 +0200
Re: Standard or Forth? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-09-03 03:00 -0500
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-03 22:48 +1000
Re: Standard or Forth? Alex <alex@rivadpm.com> - 2016-09-03 15:05 +0100
Re: Standard or Forth? Julian Fondren <julian.fondren@gmail.com> - 2016-09-03 07:46 -0700
Re: Standard or Forth? "Elizabeth D. Rather" <erather@forth.com> - 2016-09-03 23:53 +0200
Re: Standard or Forth? stephen@mpeforth.com (Stephen Pelc) - 2016-09-03 22:37 +0000
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-03 21:17 -0700
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-05 02:35 +1000
Re: Standard or Forth? albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-09-05 03:18 +0200
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-08 22:04 +1000
Re: Standard or Forth? Paul Rubin <no.email@nospam.invalid> - 2016-09-08 12:41 -0700
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-09 12:51 +1000
Re: Standard or Forth? Paul Rubin <no.email@nospam.invalid> - 2016-09-08 21:50 -0700
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-12 17:16 +1000
Re: Standard or Forth? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-09-12 16:59 +0000
Re: Standard or Forth? "HAA" <someone@microsoft.com> - 2016-09-15 13:38 +1000
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-08 23:33 -0700
Re: Standard or Forth? Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2016-09-05 08:41 +0100
Re: Standard or Forth? hughaguilar96@gmail.com - 2016-09-05 01:42 -0700
Re: Rosetta Code: Catamorphism albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-08-29 16:03 +0200
Re: Rosetta Code: Catamorphism anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-29 16:04 +0000
csiph-web