Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #50505
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Rosetta Code: Catamorphism |
| Date | 2016-08-27 10:01 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <2016Aug27.120140@mips.complang.tuwien.ac.at> (permalink) |
| References | <npkec6$gnu$1@dont-email.me> <c3dd18a9-e76d-4260-bc20-a530d6abf2f0@googlegroups.com> <2016Aug25.115318@mips.complang.tuwien.ac.at> <0db03101-1891-4b65-b444-c31941b48294@googlegroups.com> |
Julian Fondren <julian.fondren@gmail.com> writes:
>On Thursday, August 25, 2016 at 5:12:50 AM UTC-5, Anton Ertl wrote:
>> Julian Fondren <julian.fondren@gmail.com> writes:
>> >https://rosettacode.org/wiki/Catamorphism#Forth
>>
>> Do you want to say anything?
>
>Alright, WJ's hit a new low, pointing out such omissions is just
>noise.
I still don't get it. Ah, after trying "Goto Parent" another time,
despite the posting looking like a thread-opening posting (no "Re:",
no cited text), I actually find that it is a followup to a WJ posting.
>In other languages: reduce, reduce2, foreach, map.
>
>In Forth you only need one 'function'.
Yes, mostly. One exception: If you want to update the entries, you
probably want another one that gives the address of the entry instead
of the value.
>> : (map) ( a n -- a a') cells over + swap ;
>> : map< ( -- ) postpone (map) postpone ?do postpone i postpone @ ; immediate
>> : >map ( -- ) 1 cells postpone literal postpone +loop ; immediate
>>
>> : .array ( addr u -- )
>> map< . >map ;
>>
>> : sum-array ( addr u -- n )
>> 0 rot rot map< + >map ;
>
>The avoidance of BOUNDS and -ROT and ]] ... [[ make me think that
>this is tutorial code.
Yes, it's from my lecture notes. It's also standard code.
>That's fine, but Rosetta Code isn't a
>tutorial. Idiomatic code is better, even if a listing must then
>have several sub-listings due to competing idioms.
I guess "Works with Gforth" is enough if you want to use these
features. If you update the entry, it's up to you what you use.
My take on these things is this:
* For people who don't know Forth, and don't want to learn it, I guess
the shorter versions are more impressive (one more reason to avoid
weighing down the example with unrelated stuff).
* For people who don't know Forth, and for which you want to explain
it, it depends on what you want to explain to them (standard code in
the example above).
* For people who know Forth, it depends on what they know. POSTPONE
might be wider known than ]]...[[. However, I find it interesting
that you consider ]]...[[ more idiomatic. That may well be the
case: The Forth community seems to be divided into two groups: Those
who write this kind of macros, and I guess that many of us use
]]...[[; those who write EVALUATE-based macros, so no POSTPONE,
either; and those who think that macros are for gurus, and they
don't use POSTPONE, either.
Anyway, let's see what the code above looks like with ]]...[[ and BOUNDS:
: map< ( -- ) ]] cells bounds ?do i @ [[ ; immediate
: >map ( -- ) ]] 1 +loop [[ ; immediate
\ .array and sum-array look the same
- 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