Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #35035 > unrolled thread
| Started by | visualforth@rocketmail.com |
|---|---|
| First post | 2014-12-19 15:59 -0800 |
| Last post | 2014-12-23 15:16 +0000 |
| Articles | 20 on this page of 340 — 34 participants |
Back to article view | Back to comp.lang.forth
FORTH on the Advanced Placement Computer Science ! visualforth@rocketmail.com - 2014-12-19 15:59 -0800
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-20 08:36 +0000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-20 03:40 -0600
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-20 13:57 +0000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-21 04:38 -0600
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-21 21:38 +0000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-21 16:32 -0600
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-22 03:56 +0000
Re: FORTH on the Advanced Placement Computer Science ! mhx@iae.nl - 2014-12-22 00:53 -0800
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-12-22 13:43 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 02:57 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 03:38 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 02:42 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2014-12-22 11:42 +0000
Re: FORTH on the Advanced Placement Computer Science ! rickman <gnuarm@gmail.com> - 2014-12-22 07:51 -0500
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2014-12-22 15:59 +0000
Re: FORTH on the Advanced Placement Computer Science ! rickman <gnuarm@gmail.com> - 2014-12-23 11:17 -0500
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 02:57 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 06:09 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2014-12-23 12:44 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 13:12 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 07:57 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-23 10:31 -0600
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 12:27 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-23 15:04 -0600
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 19:28 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-25 02:43 -0600
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-12-25 20:36 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 11:43 +0000
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-12-25 20:40 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-26 13:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2014-12-26 11:40 -1000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-05 19:33 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-05 21:31 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-05 21:33 -1000
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-06 10:24 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 10:13 -1000
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-07 00:41 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 14:59 -1000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-06 11:53 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 10:16 -1000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 18:56 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 12:31 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2014-12-25 18:44 +0000
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2014-12-25 12:46 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-26 14:08 +0000
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2014-12-27 09:48 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-27 12:05 -0800
Re: FORTH on the Advanced Placement Computer Science ! visualforth@rocketmail.com - 2014-12-29 13:08 -0800
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 20:13 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 20:21 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 12:39 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-23 15:16 -0600
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 17:40 -0800
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-24 05:34 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 21:12 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-24 12:40 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 09:40 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2014-12-25 08:52 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-25 09:18 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 11:14 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-24 12:53 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 09:15 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 12:07 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-25 11:00 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-24 03:26 -0600
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2014-12-25 19:45 +0100
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-24 05:31 +0100
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-24 03:28 -0600
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-24 11:36 +0000
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 22:08 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 14:27 -0800
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-23 22:58 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-23 15:38 -0800
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-25 02:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 19:16 -0800
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-25 06:30 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 22:49 -0800
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 07:15 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 23:32 -0800
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 10:39 +0000
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 10:56 +0000
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-26 01:21 +0100
Re: FORTH on the Advanced Placement Computer Science ! mix <mix@test.net> - 2014-12-25 09:06 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-25 09:39 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2014-12-25 21:15 +0000
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-25 23:34 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-25 17:09 -0800
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-26 02:22 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-25 17:49 -0800
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-26 05:22 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-26 14:00 +0000
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-26 16:13 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-27 09:50 +0000
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-27 04:41 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-27 10:21 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-30 11:50 -0800
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2014-12-31 15:02 +0100
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-12-26 03:28 -0600
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-26 10:35 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-26 14:54 -0800
Re: FORTH on the Advanced Placement Computer Science ! krishna.myneni@ccreweb.org - 2014-12-26 16:36 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-26 21:19 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-27 10:17 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-27 12:09 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-01 21:07 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-02 11:42 -0800
Re: FORTH on the Advanced Placement Computer Science ! visualforth@rocketmail.com - 2015-01-02 12:45 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-02 23:42 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-04 14:05 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-06 03:51 +0100
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-05 20:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-05 19:25 -1000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-07 14:52 -0800
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-09 08:04 +0300
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-08 21:14 -1000
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-09 16:25 +0300
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-09 09:10 -1000
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-10 14:35 +0300
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-10 20:51 -1000
Re: FORTH on the Advanced Placement Computer Science ! Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2015-01-11 11:29 +0100
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-11 03:46 -0800
Re: FORTH on the Advanced Placement Computer Science ! Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2015-01-11 15:58 +0100
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-11 23:01 +0000
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-11 16:19 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-11 16:50 -0800
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-12 08:53 +0300
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-12 08:28 +0000
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-12 11:10 +0000
Re: FORTH on the Advanced Placement Computer Science ! stephen@mpeforth.com (Stephen Pelc) - 2015-01-11 11:30 +0000
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-11 16:56 +0300
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-11 19:47 +0000
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-12 08:03 +0300
Re: FORTH on the Advanced Placement Computer Science ! Coos Haak <chforth@hccnet.nl> - 2015-01-11 23:44 +0100
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-12 09:05 +0300
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-12 10:56 +0000
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-31 10:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! Coos Haak <chforth@hccnet.nl> - 2015-01-09 23:01 +0100
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-10 14:43 +0300
Re: FORTH on the Advanced Placement Computer Science ! Coos Haak <chforth@hccnet.nl> - 2015-01-11 23:45 +0100
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-12 09:09 +0300
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-09 10:52 -0800
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-10 15:31 +0300
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-05 23:34 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-05 22:22 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 08:41 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 10:30 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 13:37 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 13:02 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 15:31 -0800
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-07 01:15 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 15:23 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 19:25 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 17:52 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 21:15 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-06 19:30 -1000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2015-01-07 05:07 -0600
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-07 15:08 +0000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2015-01-07 12:41 -0600
Re: FORTH on the Advanced Placement Computer Science ! Elizabeth D Rather <erather@forth.com> - 2015-01-07 11:09 -1000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-07 08:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-07 11:52 +0000
Re: FORTH on the Advanced Placement Computer Science ! humptydumpty <ouatubi@gmail.com> - 2015-01-09 14:14 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-09 20:04 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-10 20:57 -1000
Re: FORTH on the Advanced Placement Computer Science ! humptydumpty <ouatubi@gmail.com> - 2015-01-11 08:31 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-11 19:59 +0000
Re: FORTH on the Advanced Placement Computer Science ! humptydumpty <ouatubi@gmail.com> - 2015-01-11 22:51 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-15 22:34 -0800
Re: FORTH on the Advanced Placement Computer Science ! humptydumpty <ouatubi@gmail.com> - 2015-01-16 08:56 -0800
Re: FORTH on the Advanced Placement Computer Science ! Mark Wills <markwills1970@gmail.com> - 2015-01-07 01:54 -0800
Re: FORTH on the Advanced Placement Computer Science ! stephen@mpeforth.com (Stephen Pelc) - 2015-01-07 12:33 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-07 14:25 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-07 16:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-07 15:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-07 06:00 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-07 08:49 -0800
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-07 10:06 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-07 18:09 +0000
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-07 10:16 -0800
Re: FORTH on the Advanced Placement Computer Science ! Alexander Skobelev <al.skobelev@gmail.com> - 2015-01-10 16:48 +0300
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-08 16:25 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-08 08:50 -1000
Re: FORTH on the Advanced Placement Computer Science ! mhx@iae.nl - 2015-01-07 10:37 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-08 16:32 +0000
Re: FORTH on the Advanced Placement Computer Science ! Doug Hoffman <glidedog@gmail.com> - 2015-01-09 18:28 -0500
Re: FORTH on the Advanced Placement Computer Science ! Doug Hoffman <glidedog@gmail.com> - 2015-01-07 07:31 -0500
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-07 16:24 -0800
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-08 14:02 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-08 09:26 -0800
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-08 17:44 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-08 11:01 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-07 17:18 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-07 09:44 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-08 09:31 +0000
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-11 03:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-07 15:21 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-07 18:19 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-08 09:40 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-08 14:49 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-08 17:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2015-01-06 04:42 -0600
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-06 08:13 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-09 02:52 +0100
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-08 18:34 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-08 20:29 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Elizabeth D. Rather" <erather@forth.com> - 2015-01-08 21:30 -1000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-09 11:14 -0800
Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-09 22:18 +0000
Re: Standards (was FORTH on the ...) Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-10 03:15 +0100
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-09 20:56 -0800
Re: Standards (was FORTH on the ...) "WJ" <w_a_x_man@yahoo.com> - 2015-01-12 03:02 +0000
Re: Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-12 10:14 +0000
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-10 11:39 -0800
Re: Standards (was FORTH on the ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-13 18:08 +0000
Re: Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-13 20:04 +0000
Re: Standards (was FORTH on the ...) Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-14 02:43 +0100
Re: Standards (was FORTH on the ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-14 13:34 +0000
Re: Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-15 02:03 +0000
Re: Standards (was FORTH on the ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-15 12:03 +0000
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-15 06:47 -0800
Re: Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-10 19:15 +0000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-10 12:52 -0800
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-10 19:05 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-11 09:28 -0800
Re: Standards (was FORTH on the ...) "Elizabeth D. Rather" <erather@forth.com> - 2015-01-11 14:45 -1000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-12 18:28 -0800
Re: Standards (was FORTH on the ...) Elizabeth D Rather <erather@forth.com> - 2015-01-12 17:12 -1000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-12 20:55 -0800
Re: Standards (was FORTH on the ...) Mark Wills <markwills1970@gmail.com> - 2015-01-13 03:48 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-13 06:05 -0800
Re: Standards (was FORTH on the ...) Julian Fondren <julian.fondren@gmail.com> - 2015-01-13 06:34 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-13 06:51 -0800
Re: Standards (was FORTH on the ...) Mark Wills <markwills1970@gmail.com> - 2015-01-13 08:03 -0800
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-13 19:18 -0800
Re: Standards (was FORTH on the ...) Mark Wills <markwills1970@gmail.com> - 2015-01-13 08:26 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-13 09:54 -0800
Re: Standards (was FORTH on the ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-13 17:35 +0000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-13 18:19 -0800
Re: Standards (was FORTH on the ...) "WJ" <w_a_x_man@yahoo.com> - 2015-01-14 21:03 +0000
Re: Standards (was FORTH on the ...) "WJ" <w_a_x_man@yahoo.com> - 2015-01-14 21:07 +0000
Re: Standards (was FORTH on the ...) "Alex McDonald" <blog@rivadpm.com> - 2015-01-15 01:06 +0000
Re: Standards (was FORTH on the ...) Mark Wills <markwills1970@gmail.com> - 2015-01-15 00:52 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-15 01:17 -0800
Re: Standards (was FORTH on the ...) "Elizabeth D. Rather" <erather@forth.com> - 2015-01-15 17:35 -1000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-15 20:38 -0800
Re: Standards (was FORTH on the ...) Alex McDonald <blog@rivadpm.com> - 2015-01-16 10:47 -0800
Re: Standards (was FORTH on the ...) Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-16 20:47 +0100
Re: Standards (was FORTH on the ...) krishna.myneni@ccreweb.org - 2015-01-16 14:37 -0800
Re: Standards (was FORTH on the ...) krishna.myneni@ccreweb.org - 2015-01-16 17:26 -0800
Re: Standards (was FORTH on the ...) Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-17 03:03 +0100
Re: Standards (was FORTH on the ...) "Elizabeth D. Rather" <erather@forth.com> - 2015-01-13 10:40 -1000
Re: Standards (was FORTH on the ...) hughaguilar96@gmail.com - 2015-01-13 19:04 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-11 23:24 +0000
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-09 18:09 +0100
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-09 09:31 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-09 11:16 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-09 22:38 +0100
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2015-01-16 13:44 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-17 02:39 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-17 13:37 +0000
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-17 18:44 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-18 12:57 +0000
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-18 22:48 +0100
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-19 03:10 +0100
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-18 18:41 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-17 11:45 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-17 17:57 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-18 14:57 -0800
Re: FORTH on the Advanced Placement Computer Science ! awegel@arcor.de (Alexander Wegel) - 2015-01-19 00:49 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-19 15:04 +0000
Re: FORTH on the Advanced Placement Computer Science ! beeflo <beeflobill@gmail.com> - 2015-01-19 16:24 -0800
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2015-01-20 03:26 +0100
Re: FORTH on the Advanced Placement Computer Science ! Melzzzzz <mel@zzzzz.com> - 2015-01-20 04:23 +0100
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-23 21:42 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-20 20:05 -0800
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-20 07:10 +0000
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-20 12:04 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-20 16:11 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-20 20:40 -0800
Re: FORTH on the Advanced Placement Computer Science ! Jan Coombs <Jan-54 <jenfhaomndgfwutc@murmic.plus.com>> - 2015-01-20 23:29 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-20 20:00 -0800
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-21 01:55 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-22 00:05 -0800
Re: FORTH on the Advanced Placement Computer Science ! Mark Wills <markwills1970@gmail.com> - 2015-01-19 07:42 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-06 09:50 +0000
Re: FORTH on the Advanced Placement Computer Science ! Andrew Haley <andrew29@littlepinkcloud.invalid> - 2015-01-06 04:38 -0600
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-09 21:34 -0800
Re: FORTH on the Advanced Placement Computer Science ! Michael Barry <barrym95838@yahoo.com> - 2015-01-09 23:28 -0800
Re: FORTH on the Advanced Placement Computer Science ! "hughaguilar96@yahoo.com" <hughaguilar96@gmail.com> - 2015-01-10 11:10 -0800
Re: FORTH on the Advanced Placement Computer Science ! Michael Barry <barrym95838@yahoo.com> - 2015-01-11 00:49 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-12 22:42 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-12 17:33 -0800
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-12 19:17 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-12 21:06 -0800
Re: FORTH on the Advanced Placement Computer Science ! Julian Fondren <julian.fondren@gmail.com> - 2015-01-13 04:08 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-13 15:00 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-13 18:45 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-13 21:12 -0800
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-16 20:41 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-21 20:42 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2015-01-21 23:19 -0800
Re: FORTH on the Advanced Placement Computer Science ! Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-01-26 20:20 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-01-05 10:31 +0000
Re: FORTH on the Advanced Placement Computer Science ! krishna.myneni@ccreweb.org - 2014-12-27 07:16 -0800
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-27 13:08 -0800
Re: FORTH on the Advanced Placement Computer Science ! Michael Barry <barrym95838@yahoo.com> - 2014-12-27 10:54 -0800
Re: FORTH on the Advanced Placement Computer Science ! krishna.myneni@ccreweb.org - 2014-12-27 11:01 -0800
Re: FORTH on the Advanced Placement Computer Science ! Michael Barry <barrym95838@yahoo.com> - 2014-12-27 21:25 -0800
Re: FORTH on the Advanced Placement Computer Science ! krishna.myneni@ccreweb.org - 2014-12-29 05:20 -0800
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2015-01-04 11:53 +0000
Re: FORTH on the Advanced Placement Computer Science ! mhx@iae.nl - 2015-01-04 05:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! krishna.myneni@ccreweb.org - 2015-01-04 08:00 -0800
Re: FORTH on the Advanced Placement Computer Science ! Coos Haak <chforth@hccnet.nl> - 2014-12-26 15:00 +0100
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-26 13:35 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 10:55 +0000
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 07:08 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-24 23:27 -0800
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 10:34 +0000
Re: FORTH on the Advanced Placement Computer Science ! Paul Rubin <no.email@nospam.invalid> - 2014-12-25 09:47 -0800
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 19:44 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 11:00 +0000
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 12:01 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-25 16:03 +0000
Re: FORTH on the Advanced Placement Computer Science ! Tom O'Donnell <tod@nospam.com> - 2014-12-25 17:20 +0000
Re: FORTH on the Advanced Placement Computer Science ! hughaguilar96@gmail.com - 2014-12-26 21:53 -0800
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2015-01-08 22:30 +0000
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2014-12-25 20:00 +0100
Re: FORTH on the Advanced Placement Computer Science ! "WJ" <w_a_x_man@yahoo.com> - 2014-12-25 08:36 +0000
Re: FORTH on the Advanced Placement Computer Science ! Bernd Paysan <bernd.paysan@gmx.de> - 2014-12-25 19:36 +0100
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-05 19:09 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-23 15:35 +0000
Re: FORTH on the Advanced Placement Computer Science ! "Alex McDonald" <blog@rivadpm.com> - 2015-01-05 19:16 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-01-08 15:51 +0000
Re: FORTH on the Advanced Placement Computer Science ! Michael Barry <barrym95838@yahoo.com> - 2014-12-21 16:02 -0800
Re: FORTH on the Advanced Placement Computer Science ! visualforth@rocketmail.com - 2014-12-22 10:51 -0800
Re: FORTH on the Advanced Placement Computer Science ! JUERGEN <epldfpga@aol.com> - 2014-12-22 05:47 -0800
Re: FORTH on the Advanced Placement Computer Science ! rickman <gnuarm@gmail.com> - 2014-12-22 09:10 -0500
Re: FORTH on the Advanced Placement Computer Science ! albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-12-22 15:23 +0000
Re: FORTH on the Advanced Placement Computer Science ! anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-12-23 15:16 +0000
Page 9 of 17 — ← Prev page 1 … 7 8 [9] 10 11 … 17 Next page →
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2015-01-07 08:02 -0800 |
| Message-ID | <874ms2wpcm.fsf@jester.gateway.sonic.net> |
| In reply to | #35533 |
Andrew Haley <andrew29@littlepinkcloud.invalid> writes: > I don't think anyone would choose that API in a Forth graphics > package. ... > : DRAW-BOX ( top left bottom right) > 2OVER AT >X DRAW >Y DRAW >X DRAW >Y DRAW ; Nice :-)
[toc] | [prev] | [next] | [standalone]
| From | "WJ" <w_a_x_man@yahoo.com> |
|---|---|
| Date | 2015-01-07 11:52 +0000 |
| Message-ID | <m8j6m5$rr7$1@dont-email.me> |
| In reply to | #35526 |
Paul Rubin wrote:
>
> I'll append a Forth game that I wrote and posted last year: I'm happy to
> hear any criticisms, about excessive stack noise or anything else.
>
> ================================================================
> #! /usr/bin/gforth
> \ fifteen puzzle, tested with gforth 0.7.0. Have fun.
> 64 constant ATSIGN \ ascii atsign @
> variable move# 1 move# ! \ move counter
>
> create board 16 cells allot
> : board& ( n -- addr ) cells board + ;
> : board@ ( n -- value ) board& @ ;
> : board! ( v n -- ) board& ! ;
>
> \ show the board
> : hexn ( n -- ) base @ swap hex . base ! ;
> : square-show ( n -- ) \ show n as a hex digit or @ for zero
> dup 0= if drop ATSIGN emit space else hexn then ;
> : bs.1 ( n -- n ) 4 0 do dup board@ square-show 1+ loop ;
> : board-show ( -- ) cr 0 4 0 do bs.1 cr loop drop ;
> : bs ( -- ) board-show ;
>
> \ find the empty cell next to a specified cell, if it exists.
> : ck@.1 ( t n -- n | t ) dup board@ 0<> if drop else nip then ;
> : ck@ ( t f n -- n | t ) swap if ck@.1 else drop then ;
> : up? ( t n -- n|t ) dup 4 >= swap 4 - ck@ ;
> : down? ( t n -- n|t ) dup 12 < swap 4 + ck@ ;
> : left? ( t n -- n|t ) dup 4 mod 0<> swap 1- ck@ ;
> : right? ( t n -- n|t ) dup 4 mod 3 <> swap 1+ ck@ ;
> \ find empty square next to src, or return -1 if no empty square.
> : get-empty ( src -- dst ) >r -1 r@ up? r@ down? r@ left? r> right? ;
>
> \ move piece from location to adjacent empty square, if it's there.
> : invalid ( src dst -- ) ." ?invalid " . . cr ;
> : valid ( src dst ) 2dup board@ >r board@ swap board! r> swap board! ;
> : move.1 ( src -- src dst valid ) dup get-empty dup -1 <> ;
> \ attempt move, print error message if invalid (used during play)
> : bump-move# ( -- ) 1 move# +! ;
> : move-noisy ( src -- ) move.1 if valid bump-move# else invalid then ;
> \ attempt move, ignore if invalid (used during shuffling)
> : move-quiet ( src -- ) move.1 if valid else 2drop then ;
>
> \ read hex digit from keyboard
> : decimal? ( ch -- f ) '0 '9 1+ within ; \ check for decimal digit
> : dconvert ( ch -- n ) dup decimal? if '0 - else drop -1 then ;
> : hexletter? ( ch -- f ) 'a 'g within ; \ check for hex letter
> : hconvert ( ch -- n ) dup hexletter? if 'a - 10 + else drop -1 then ;
> : conv-digit ( ch -- n ) dup dconvert swap hconvert and ;
> : keydigit ( -- n ) begin key conv-digit dup -1 = while repeat ;
>
> \ Marsaglia multiply-with-carry (MWC) prng. not well tested, don't rely on.
> 1234 value m_z 2345 value m_w
> : random.1 ( n -- n ) 65536 /mod swap 36969 * + ;
> : get-random ( -- n ) m_z random.1 to m_z m_w random.1 to m_w
> m_z 16 lshift m_w + ;
> : randomize ( -- ) utime drop 65536 /mod to m_z to m_w ;
> : randnibble ( -- n ) get-random 1237 mod $f and ; \ slightly biased but ok
>
> : random-move ( -- ) randnibble move-quiet ;
> : shuffle ( -- ) \ shuffle whole board by attemping many random moves.
> 20000 0 do random-move loop ;
> : timed-shuffle utime shuffle utime 2swap d- d. ; \ just for jollies
>
> \ play the game
> : lose? ( sq -- f ) dup 1+ $f and swap board@ <> ;
> : win? ( -- f ) -1 16 0 do i lose? if 1+ leave then loop ;
> : xfind ( n -- loc ) \ find location of square containing n
> 16 0 do i board@ over = if drop i leave then loop ;
> : congrats ( -- ) ." congrats you have won." cr board-show ;
> : nmoves ( -- ) ." move# " move# @ . cr ;
> : play.1 ( -- ) nmoves keydigit xfind move-noisy ;
> : play.2 ( -- ) begin board-show play.1 win? until congrats ;
> : board-init 16 0 do i 1+ $f and i board! loop ;
> : intro ( -- )
> ." @ is the empty square, enter adjacent tile # to move it." cr
> ." Your goal is: " board-show cr ." Start:" ;
> \ : cheat board-init 14 move-noisy play.2 ;
> : play ( -- ) board-init intro shuffle play.2 ;
>
> randomize play
> bye
Gauche Scheme:
(use gauche.array)
(use srfi-27)
(use srfi-42)
(define winning-position
#,(<array> (0 4 0 4)
1 2 3 4
5 6 7 8
9 a b c
d e f _))
(define board (array-map identity winning-position))
;; Location of empty square.
(define empty #(3 3))
(define (show-board)
(print "+---------------+")
(dotimes (row 4)
(dotimes (col 4)
(format #t "| ~a " (array-ref board row col)))
(print "|")
(print "+---------------+")))
(define (adjacent? a b)
(define offset (vector-map (^(m n) (abs (- m n))) a b))
(= 1 (apply + (vector->list offset))))
(define (move-piece piece)
(define location
(first-ec #f
(: i 4) (: j 4)
(if (eq? piece (array-ref board i j)))
(vector i j)))
(and location (adjacent? location empty)
(begin
(array-set! board location '_)
(array-set! board empty piece)
(set! empty location))))
(define (shuffle-board)
(dotimes (4000)
(move-piece
(array-ref board (random-integer 4) (random-integer 4)))))
(define (play)
(set! board (array-map identity winning-position))
(set! empty #(3 3))
(shuffle-board)
(let run ()
(show-board)
(display "Enter piece to move (q to quit): ") (flush)
(let1 piece (read)
(unless (eq? 'q piece)
(if (move-piece piece)
(if (equal? winning-position board)
(begin (show-board) (print "\nYou won!"))
(run))
(begin
(print "\nInvalid move.\n")
(run)))))))
gosh> (play)
+---------------+
| e | 3 | _ | f |
+---------------+
| 1 | c | a | 6 |
+---------------+
| 7 | 9 | b | d |
+---------------+
| 5 | 8 | 2 | 4 |
+---------------+
Enter piece to move (q to quit): 3
+---------------+
| e | _ | 3 | f |
+---------------+
| 1 | c | a | 6 |
+---------------+
| 7 | 9 | b | d |
+---------------+
| 5 | 8 | 2 | 4 |
+---------------+
...
+---------------+
| 1 | 2 | 3 | 4 |
+---------------+
| 5 | 6 | 7 | 8 |
+---------------+
| 9 | a | b | _ |
+---------------+
| d | e | f | c |
+---------------+
Enter piece to move (q to quit): c
+---------------+
| 1 | 2 | 3 | 4 |
+---------------+
| 5 | 6 | 7 | 8 |
+---------------+
| 9 | a | b | c |
+---------------+
| d | e | f | _ |
+---------------+
You won!
[toc] | [prev] | [next] | [standalone]
| From | humptydumpty <ouatubi@gmail.com> |
|---|---|
| Date | 2015-01-09 14:14 -0800 |
| Message-ID | <93b1c15c-4b83-4110-8ea0-5076293cda6e@googlegroups.com> |
| In reply to | #35526 |
On Wednesday, January 7, 2015 at 7:16:03 AM UTC+2, Paul Rubin wrote:
> "Elizabeth D. Rather" writes:
> >> To communicate with the high level, sure; but a VARIABLE intended for
> >> use by just one word seems like a bug magnet.
> > Who's talking about a VARIABLE for just one word? We were talking
> > about a graphics package that keeps various operating parameters in
> > VARIABLEs or other data structures. Given that you're doing it that
> > way, your draw-rectangle word would use those and not need locals *or*
> > tortuous stack fiddling.
>
> What's wrong with draw-rectangle with the API that I described? Here's
> another example we've talked about before: multiply two complex numbers.
> Locals version:
>
> : c* { a b c d -- ac-bd ad+bc } a c * b d * - a d * b c * + ;
>
> No-locals version:
>
> : ac-bd ( a b c d -- ac-bd ) >r rot * swap r> * - ;
> : ad+bc ( a b c d -- ad+bc ) -rot * >r * r> + ;
> : z* ( a b c d -- ac-bd ad+bc) 2over 2over ad+bc >r ac-bd r> ;
>
> Last time we discussed this I asked how Chuck would have done it, and
> the answer was that he would drop to assembler. So much for Forth's
> universality ;-).
>
> > The difficulty with sample definitions like you see on c.l.f is that
> > there is no context as there would be in an application.
>
> I'll append a Forth game that I wrote and posted last year: I'm happy to
> hear any criticisms, about excessive stack noise or anything else.
>
> > Well, I'm not sure either what "expert" code you've looked at or what
> > your threshold for "ugly" stack juggling is. ... I rarely see code by
> > the programmers I work with whose stack manipulations are difficult to
> > follow.
>
> How about the word I posted by Alex, that swaps two pointers. I
> don't know I'd call it "difficult", but it wasn't exactly obvious
> to me what it was doing. I can never remember which way ROT rotates
> so I always have to test (and I use -ROT more than ROT).
>
> ================================================================
> #! /usr/bin/gforth
> \ fifteen puzzle, tested with gforth 0.7.0. Have fun.
> 64 constant ATSIGN \ ascii atsign @
> variable move# 1 move# ! \ move counter
>
> create board 16 cells allot
> : board& ( n -- addr ) cells board + ;
> : board@ ( n -- value ) board& @ ;
> : board! ( v n -- ) board& ! ;
>
> \ show the board
> : hexn ( n -- ) base @ swap hex . base ! ;
> : square-show ( n -- ) \ show n as a hex digit or @ for zero
> dup 0= if drop ATSIGN emit space else hexn then ;
> : bs.1 ( n -- n ) 4 0 do dup board@ square-show 1+ loop ;
> : board-show ( -- ) cr 0 4 0 do bs.1 cr loop drop ;
> : bs ( -- ) board-show ;
>
> \ find the empty cell next to a specified cell, if it exists.
> : ck@.1 ( t n -- n | t ) dup board@ 0<> if drop else nip then ;
> : ck@ ( t f n -- n | t ) swap if ck@.1 else drop then ;
> : up? ( t n -- n|t ) dup 4 >= swap 4 - ck@ ;
> : down? ( t n -- n|t ) dup 12 < swap 4 + ck@ ;
> : left? ( t n -- n|t ) dup 4 mod 0<> swap 1- ck@ ;
> : right? ( t n -- n|t ) dup 4 mod 3 <> swap 1+ ck@ ;
> \ find empty square next to src, or return -1 if no empty square.
> : get-empty ( src -- dst ) >r -1 r@ up? r@ down? r@ left? r> right? ;
>
> \ move piece from location to adjacent empty square, if it's there.
> : invalid ( src dst -- ) ." ?invalid " . . cr ;
> : valid ( src dst ) 2dup board@ >r board@ swap board! r> swap board! ;
> : move.1 ( src -- src dst valid ) dup get-empty dup -1 <> ;
> \ attempt move, print error message if invalid (used during play)
> : bump-move# ( -- ) 1 move# +! ;
> : move-noisy ( src -- ) move.1 if valid bump-move# else invalid then ;
> \ attempt move, ignore if invalid (used during shuffling)
> : move-quiet ( src -- ) move.1 if valid else 2drop then ;
>
> \ read hex digit from keyboard
> : decimal? ( ch -- f ) '0 '9 1+ within ; \ check for decimal digit
> : dconvert ( ch -- n ) dup decimal? if '0 - else drop -1 then ;
> : hexletter? ( ch -- f ) 'a 'g within ; \ check for hex letter
> : hconvert ( ch -- n ) dup hexletter? if 'a - 10 + else drop -1 then ;
> : conv-digit ( ch -- n ) dup dconvert swap hconvert and ;
> : keydigit ( -- n ) begin key conv-digit dup -1 = while repeat ;
>
> \ Marsaglia multiply-with-carry (MWC) prng. not well tested, don't rely on.
> 1234 value m_z 2345 value m_w
> : random.1 ( n -- n ) 65536 /mod swap 36969 * + ;
> : get-random ( -- n ) m_z random.1 to m_z m_w random.1 to m_w
> m_z 16 lshift m_w + ;
> : randomize ( -- ) utime drop 65536 /mod to m_z to m_w ;
> : randnibble ( -- n ) get-random 1237 mod $f and ; \ slightly biased but ok
>
> : random-move ( -- ) randnibble move-quiet ;
> : shuffle ( -- ) \ shuffle whole board by attemping many random moves.
> 20000 0 do random-move loop ;
> : timed-shuffle utime shuffle utime 2swap d- d. ; \ just for jollies
>
> \ play the game
> : lose? ( sq -- f ) dup 1+ $f and swap board@ <> ;
> : win? ( -- f ) -1 16 0 do i lose? if 1+ leave then loop ;
> : xfind ( n -- loc ) \ find location of square containing n
> 16 0 do i board@ over = if drop i leave then loop ;
> : congrats ( -- ) ." congrats you have won." cr board-show ;
> : nmoves ( -- ) ." move# " move# @ . cr ;
> : play.1 ( -- ) nmoves keydigit xfind move-noisy ;
> : play.2 ( -- ) begin board-show play.1 win? until congrats ;
> : board-init 16 0 do i 1+ $f and i board! loop ;
> : intro ( -- )
> ." @ is the empty square, enter adjacent tile # to move it." cr
> ." Your goal is: " board-show cr ." Start:" ;
> \ : cheat board-init 14 move-noisy play.2 ;
> : play ( -- ) board-init intro shuffle play.2 ;
>
> randomize play
> bye
Hi!
Looking at game code I have a feeling like I see a centipede:
a amazing creature but hardly I wish to touch it.
This is what I question:
1. Too much words, too less meaning associated with. If I want
to see the meaning of one word I must check a few (more) others recursively.
2. Lack of named constants like BOARDSIZE ROWS COLS.
3. Words that are used just one time, like ATSIGN.
4. Unhappy choice to use cells for board state.
5. Strategy to move a piece to adjacent square if empty.
What I coded for 15-game (tested on GForth 0.7.3):
8<---
' noop IS bootmessage
4 CONSTANT COLS
4 CONSTANT ROWS
CREATE Board COLS ROWS * chars allot
: init-board ( -- )
s" 123456789ABCDEF*" Board swap move
;
: .board ( -- )
ROWS 0 DO COLS 0 DO J ROWS * I + Board + c@ emit LOOP cr LOOP
;
: chars-exchange ( a0 a1 -- ; exchange chars at addresses )
over c@ over c@ swap rot c! swap c!
;
: indexes-exchange ( i0 i1 -- ; exchange chars at indexes on Board )
Board + swap Board + chars-exchange
;
: locate* ( -- index ; return INDEX of * in Board )
0 BEGIN dup Board + c@ [CHAR] * <> WHILE 1+ REPEAT
;
: left ( -- )
locate* dup dup COLS mod 0 <> IF 1- THEN indexes-exchange
;
: right ( -- )
locate* dup dup COLS mod COLS 1- <> IF 1+ THEN indexes-exchange
;
: up ( -- )
locate* dup dup ROWS / 0 <> IF COLS - THEN indexes-exchange
;
: down ( -- )
locate* dup dup ROWS / ROWS 1- <> IF COLS + THEN indexes-exchange
;
: refresh ( -- ) page 0 0 AT-XY .board ;
: l ( -- ) left refresh ;
: r ( -- ) right refresh ;
: u ( -- ) up refresh ;
: d ( -- ) down refresh ;
include random.fs
CREATE Moves ' left , ' down , ' up , ' right ,
: n ( -- )
init-board 99 0 DO 4 random cells Moves + perform LOOP refresh
;
: h ( -- )
." Moves: l left r right u up d down; n new-game; refresh refresh board; h help; bye exit game." cr
;
n h
8<---
Gamer can use sequences of commands like: r r d <Enter>.
Have a nice day,
humptydumpty
[toc] | [prev] | [next] | [standalone]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2015-01-09 20:04 -0800 |
| Message-ID | <877fwvqo1v.fsf@jester.gateway.sonic.net> |
| In reply to | #35677 |
humptydumpty <ouatubi@gmail.com> writes: > Looking at game code I have a feeling like I see a centipede: > a amazing creature but hardly I wish to touch it. > > This is what I question: > > 1. Too much words, too less meaning associated with. If I want > to see the meaning of one word I must check a few (more) others recursively. > 2. Lack of named constants like BOARDSIZE ROWS COLS. > 3. Words that are used just one time, like ATSIGN. > 4. Unhappy choice to use cells for board state. > 5. Strategy to move a piece to adjacent square if empty. Thanks for those comments. It was my second Forth program longer than a few lines (I don't dare say what the first one was) so the critique is much appreciated. Overall it took me quite a lot of effort to write the program, compared to what it would have taken me with another language. That's probably a sign that there's something I wasn't doing right, that made it harder than it should have been. Your versions flows quite naturally and while I see obvious factoring opportunities in it, maybe it is best to leave them there. Your criticism #1 I think basically is that the code I posted is overfactored, similar to something Andrew Haley said. I'd always heard factoring was a good thing, but maybe I overdid it. I thought it made the code clearer but it also may have slowed down writing it.
[toc] | [prev] | [next] | [standalone]
| From | "Elizabeth D. Rather" <erather@forth.com> |
|---|---|
| Date | 2015-01-10 20:57 -1000 |
| Message-ID | <ldOdnaVtVL4igy_JnZ2dnUU7-N-dnZ2d@supernews.com> |
| In reply to | #35694 |
On 1/9/15 6:04 PM, Paul Rubin wrote: > humptydumpty <ouatubi@gmail.com> writes: >> Looking at game code I have a feeling like I see a centipede: >> a amazing creature but hardly I wish to touch it. >> >> This is what I question: >> >> 1. Too much words, too less meaning associated with. If I want >> to see the meaning of one word I must check a few (more) others recursively. >> 2. Lack of named constants like BOARDSIZE ROWS COLS. >> 3. Words that are used just one time, like ATSIGN. >> 4. Unhappy choice to use cells for board state. >> 5. Strategy to move a piece to adjacent square if empty. > > Thanks for those comments. It was my second Forth program longer than a > few lines (I don't dare say what the first one was) so the critique is > much appreciated. > > Overall it took me quite a lot of effort to write the program, compared > to what it would have taken me with another language. That's probably a > sign that there's something I wasn't doing right, that made it harder > than it should have been. > > Your versions flows quite naturally and while I see obvious factoring > opportunities in it, maybe it is best to leave them there. Your > criticism #1 I think basically is that the code I posted is > overfactored, similar to something Andrew Haley said. I'd always heard > factoring was a good thing, but maybe I overdid it. I thought it made > the code clearer but it also may have slowed down writing it. Some guidelines for factoring: do it if... * the operation has a logical unity to it * it's likely to be used more than once in the application * it's something you'd really like to test in isolation (e.g., the interior of a loop, individual components of a CASE statement, etc.). One of my colleagues once suggested that if you can think of a good name for it, it should be factored; if you have trouble thinking of a name, maybe you don't have the factoring quite right. Cheers, Elizabeth -- ================================================== Elizabeth D. Rather (US & Canada) 800-55-FORTH FORTH Inc. +1 310.999.6784 5959 West Century Blvd. Suite 700 Los Angeles, CA 90045 http://www.forth.com "Forth-based products and Services for real-time applications since 1973." ==================================================
[toc] | [prev] | [next] | [standalone]
| From | humptydumpty <ouatubi@gmail.com> |
|---|---|
| Date | 2015-01-11 08:31 -0800 |
| Message-ID | <35eb95a4-c31a-4381-aad0-94813f7ae797@googlegroups.com> |
| In reply to | #35694 |
duminică, 11 ianuarie 2015, 05:31:09 UTC+2, Paul Rubin a scris: > humptydumpty <ouatubi@gmail.com> writes: > > Looking at game code I have a feeling like I see a centipede: > > a amazing creature but hardly I wish to touch it. > > > > This is what I question: > > > > 1. Too much words, too less meaning associated with. If I want > > to see the meaning of one word I must check a few (more) others recursively. > > 2. Lack of named constants like BOARDSIZE ROWS COLS. > > 3. Words that are used just one time, like ATSIGN. > > 4. Unhappy choice to use cells for board state. > > 5. Strategy to move a piece to adjacent square if empty. > > Thanks for those comments. It was my second Forth program longer than a > few lines (I don't dare say what the first one was) so the critique is > much appreciated. > > Overall it took me quite a lot of effort to write the program, compared > to what it would have taken me with another language. That's probably a > sign that there's something I wasn't doing right, that made it harder > than it should have been. > > Your versions flows quite naturally and while I see obvious factoring > opportunities in it, maybe it is best to leave them there. Your > criticism #1 I think basically is that the code I posted is > overfactored, similar to something Andrew Haley said. I'd always heard > factoring was a good thing, but maybe I overdid it. I thought it made > the code clearer but it also may have slowed down writing it. You welcome! I think that 'locate*' should not be rewrited 'locate ( char -- index ) to support something'[CHAR] * locate', not even for 'factoring' sake. It would be an overdoing. Have a nice day, humptydumpty
[toc] | [prev] | [next] | [standalone]
| From | Gerry Jackson <gerry@jackson9000.fsnet.co.uk> |
|---|---|
| Date | 2015-01-11 19:59 +0000 |
| Message-ID | <m8ukmg$gk5$1@dont-email.me> |
| In reply to | #35716 |
On 11/01/2015 16:31, humptydumpty wrote: > duminică, 11 ianuarie 2015, 05:31:09 UTC+2, Paul Rubin a scris: >> humptydumpty <ouatubi@gmail.com> writes: >>> Looking at game code I have a feeling like I see a centipede: >>> a amazing creature but hardly I wish to touch it. >>> >>> This is what I question: >>> >>> 1. Too much words, too less meaning associated with. If I want >>> to see the meaning of one word I must check a few (more) others recursively. >>> 2. Lack of named constants like BOARDSIZE ROWS COLS. >>> 3. Words that are used just one time, like ATSIGN. >>> 4. Unhappy choice to use cells for board state. >>> 5. Strategy to move a piece to adjacent square if empty. >> >> Thanks for those comments. It was my second Forth program longer than a >> few lines (I don't dare say what the first one was) so the critique is >> much appreciated. >> >> Overall it took me quite a lot of effort to write the program, compared >> to what it would have taken me with another language. That's probably a >> sign that there's something I wasn't doing right, that made it harder >> than it should have been. >> >> Your versions flows quite naturally and while I see obvious factoring >> opportunities in it, maybe it is best to leave them there. Your >> criticism #1 I think basically is that the code I posted is >> overfactored, similar to something Andrew Haley said. I'd always heard >> factoring was a good thing, but maybe I overdid it. I thought it made >> the code clearer but it also may have slowed down writing it. > > You welcome! > > I think that 'locate*' should not be rewrited 'locate ( char -- index ) > to support something'[CHAR] * locate', not even for 'factoring' sake. > It would be an overdoing. > > Have a nice day, > humptydumpty > Why do you need locate*, why not just remember the index of the empty cell in a variable? The same comment is applicable to Paul's program. -- Gerry
[toc] | [prev] | [next] | [standalone]
| From | humptydumpty <ouatubi@gmail.com> |
|---|---|
| Date | 2015-01-11 22:51 -0800 |
| Message-ID | <ca5ebf44-ccbb-4eaa-a73f-ae3c9381d489@googlegroups.com> |
| In reply to | #35721 |
On Sunday, January 11, 2015 at 9:59:42 PM UTC+2, Gerry wrote: > On 11/01/2015 16:31, humptydumpty wrote: > > duminică, 11 ianuarie 2015, 05:31:09 UTC+2, Paul Rubin a scris: > >> humptydumpty <ouatubi@gmail.com> writes: > >>> Looking at game code I have a feeling like I see a centipede: > >>> a amazing creature but hardly I wish to touch it. > >>> > >>> This is what I question: > >>> > >>> 1. Too much words, too less meaning associated with. If I want > >>> to see the meaning of one word I must check a few (more) others recursively. > >>> 2. Lack of named constants like BOARDSIZE ROWS COLS. > >>> 3. Words that are used just one time, like ATSIGN. > >>> 4. Unhappy choice to use cells for board state. > >>> 5. Strategy to move a piece to adjacent square if empty. > >> > >> Thanks for those comments. It was my second Forth program longer than a > >> few lines (I don't dare say what the first one was) so the critique is > >> much appreciated. > >> > >> Overall it took me quite a lot of effort to write the program, compared > >> to what it would have taken me with another language. That's probably a > >> sign that there's something I wasn't doing right, that made it harder > >> than it should have been. > >> > >> Your versions flows quite naturally and while I see obvious factoring > >> opportunities in it, maybe it is best to leave them there. Your > >> criticism #1 I think basically is that the code I posted is > >> overfactored, similar to something Andrew Haley said. I'd always heard > >> factoring was a good thing, but maybe I overdid it. I thought it made > >> the code clearer but it also may have slowed down writing it. > > > > You welcome! > > > > I think that 'locate*' should not be rewrited 'locate ( char -- index ) > > to support something'[CHAR] * locate', not even for 'factoring' sake. > > It would be an overdoing. > > > > Have a nice day, > > humptydumpty > > > > Why do you need locate*, why not just remember the index of the empty > cell in a variable? The same comment is applicable to Paul's program. > > -- > Gerry Hi! I think it is superfluous. Economy of states space. Not need to keep in my head another variable. Not much overhead added by searching 16 chars array. Have a nice day, humptydumpty
[toc] | [prev] | [next] | [standalone]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2015-01-15 22:34 -0800 |
| Message-ID | <874mrrnsi9.fsf@jester.gateway.pace.com> |
| In reply to | #35716 |
humptydumpty <ouatubi@gmail.com> writes:
> I think that 'locate*' should not be rewrited 'locate ( char -- index )
> to support something'[CHAR] * locate', not even for 'factoring' sake.
> It would be an overdoing.
Here's some of the factoring I was thinking of. I don't know if the
factored version is better or worse than the unfactored one. Basically
the * index is split into coordinates to simplify the left/right/up/down
words. It may be possible to press this idea to clean up the code
further, since it now uses both representations in a messy way.
====
\ refactored version
' noop IS bootmessage
4 CONSTANT COLS
4 CONSTANT ROWS
CREATE Board COLS ROWS * chars allot
: init-board ( -- )
s" 123456789ABCDEF*" Board swap move
;
: .board ( -- )
CR ROWS 0 DO COLS 0 DO J ROWS * I + Board + c@ emit LOOP cr LOOP
;
: chars-exchange ( a0 a1 -- ; exchange chars at addresses )
over c@ over c@ swap rot c! swap c!
;
: indexes-exchange ( i0 i1 -- ; exchange chars at indexes on Board )
Board + swap Board + chars-exchange
;
: locate* ( -- index ; return INDEX of * in Board )
0 BEGIN dup Board + c@ [CHAR] * <> WHILE 1+ REPEAT
;
\ x,y coordinates of * in board
: locate-xy ( -- row col ) locate* dup ROWS / swap COLS mod ;
\ check that 0 <= n < limit
: xy-check.1 ( n limit -- flag ) over > swap 0 >= and ;
\ check that x,y is in bounds
: xy-check ( row col -- flag ) COLS xy-check.1 swap ROWS xy-check.1 and ;
\ swap piece at row,col with empty square. precondition: move is valid
: m-move ( row col -- ) swap rows * + locate* indexes-exchange ;
\ check if move to row,col is valid and if yes, make the move.
: check-move ( row col -- ) 2dup xy-check if m-move else 2drop then ;
\ move to (row+drow, col+dcol) if move is valid.
: move-by ( drow dcol -- ) locate-xy rot + -rot + swap check-move ;
: left ( -- ) 0 -1 move-by ;
: right ( -- ) 0 1 move-by ;
: up ( -- ) -1 0 move-by ;
: down ( -- ) 1 0 move-by ;
: refresh ( -- ) page 0 0 AT-XY .board ;
: l ( -- ) left refresh ;
: r ( -- ) right refresh ;
: u ( -- ) up refresh ;
: d ( -- ) down refresh ;
include random.fs
CREATE Moves ' left , ' down , ' up , ' right ,
: n ( -- )
init-board 99 0 DO 4 random cells Moves + perform LOOP refresh
;
: h ( -- )
." Moves: l left r right u up d down; n new-game; refresh "
." refresh board; h help; bye exit game." cr
;
n h
[toc] | [prev] | [next] | [standalone]
| From | humptydumpty <ouatubi@gmail.com> |
|---|---|
| Date | 2015-01-16 08:56 -0800 |
| Message-ID | <fb39648f-33ec-4bc1-a3a6-aa29806b96b6@googlegroups.com> |
| In reply to | #35838 |
On Friday, January 16, 2015 at 8:34:24 AM UTC+2, Paul Rubin wrote: > humptydumpty <ouatubi@gmail.com> writes: > > I think that 'locate*' should not be rewrited 'locate ( char -- index ) > > to support something'[CHAR] * locate', not even for 'factoring' sake. > > It would be an overdoing. > > Here's some of the factoring I was thinking of. I don't know if the > factored version is better or worse than the unfactored one. Basically > the * index is split into coordinates to simplify the left/right/up/down > words. It may be possible to press this idea to clean up the code > further, since it now uses both representations in a messy way. > ==== > \ refactored version > ' noop IS bootmessage > 4 CONSTANT COLS > 4 CONSTANT ROWS > CREATE Board COLS ROWS * chars allot > : init-board ( -- ) > s" 123456789ABCDEF*" Board swap move > ; > : .board ( -- ) > CR ROWS 0 DO COLS 0 DO J ROWS * I + Board + c@ emit LOOP cr LOOP > ; > : chars-exchange ( a0 a1 -- ; exchange chars at addresses ) > over c@ over c@ swap rot c! swap c! > ; > : indexes-exchange ( i0 i1 -- ; exchange chars at indexes on Board ) > Board + swap Board + chars-exchange > ; > : locate* ( -- index ; return INDEX of * in Board ) > 0 BEGIN dup Board + c@ [CHAR] * <> WHILE 1+ REPEAT > ; > > \ x,y coordinates of * in board > : locate-xy ( -- row col ) locate* dup ROWS / swap COLS mod ; > > \ check that 0 <= n < limit > : xy-check.1 ( n limit -- flag ) over > swap 0 >= and ; > > \ check that x,y is in bounds > : xy-check ( row col -- flag ) COLS xy-check.1 swap ROWS xy-check.1 and ; > > \ swap piece at row,col with empty square. precondition: move is valid > : m-move ( row col -- ) swap rows * + locate* indexes-exchange ; > > \ check if move to row,col is valid and if yes, make the move. > : check-move ( row col -- ) 2dup xy-check if m-move else 2drop then ; > > \ move to (row+drow, col+dcol) if move is valid. > : move-by ( drow dcol -- ) locate-xy rot + -rot + swap check-move ; > > : left ( -- ) 0 -1 move-by ; > : right ( -- ) 0 1 move-by ; > : up ( -- ) -1 0 move-by ; > : down ( -- ) 1 0 move-by ; > > : refresh ( -- ) page 0 0 AT-XY .board ; > : l ( -- ) left refresh ; > : r ( -- ) right refresh ; > : u ( -- ) up refresh ; > : d ( -- ) down refresh ; > > include random.fs > > CREATE Moves ' left , ' down , ' up , ' right , > : n ( -- ) > init-board 99 0 DO 4 random cells Moves + perform LOOP refresh > ; > : h ( -- ) > ." Moves: l left r right u up d down; n new-game; refresh " > ." refresh board; h help; bye exit game." cr > ; > n h Hi! Commentaries: > > \ x,y coordinates of * in board > : locate-xy ( -- row col ) locate* dup ROWS / swap COLS mod ; > In previous version moving is designed around 'index' state, now we have two states 'row' and 'col' to keep track of. > > \ check that 0 <= n < limit > : xy-check.1 ( n limit -- flag ) over > swap 0 >= and ; > That reminds me of 'within' word that could used like: ( x ) 0 COLS within ( flag ) to check if x is between limits. > \ check that x,y is in bounds > : xy-check ( row col -- flag ) COLS xy-check.1 swap ROWS xy-check.1 and ; > > \ swap piece at row,col with empty square. precondition: move is valid > : m-move ( row col -- ) swap rows * + locate* indexes-exchange ; > > \ check if move to row,col is valid and if yes, make the move. > : check-move ( row col -- ) 2dup xy-check if m-move else 2drop then ; > > \ move to (row+drow, col+dcol) if move is valid. > : move-by ( drow dcol -- ) locate-xy rot + -rot + swap check-move ; In previous version, move checking is particular to that very move. In that version, checking for every kind of moving is made for a very particular move. What meaning is to check for right,up,down boundaries when move is to left? Shouldn't be checked just for left boundary? To make a difference between older and newer version let see 'left' word by using common words 'locate*' and 'indexes-exchange'. In newer source make that words macros: === \ x,y coordinates of * in board : locate-xy ( -- row col ) ]] locate* dup ROWS / swap COLS mod [[ ; immediate \ check that 0 <= n < limit : xy-check.1 ( n limit -- flag ) ]] over > swap 0 >= and [[ ; immediate \ check that x,y is in bounds : xy-check ( row col -- flag ) ]] COLS xy-check.1 swap ROWS xy-check.1 and [[ ; immediate \ swap piece at row,col with empty square. precondition: move is valid : m-move ( row col -- ) ]] swap rows * + locate* indexes-exchange [[ ; immediate \ check if move to row,col is valid and if yes, make the move. : check-move ( row col -- ) ]] 2dup xy-check if m-move else 2drop then [[ ; immediate \ move to (row+drow, col+dcol) if move is valid. : move-by ( drow dcol -- ) ]] locate-xy rot + -rot + swap check-move [[ ; immediate === Load new file into gforth and let see new 'left definition': see left : left 0 -1 locate* dup 4 / swap 4 mod rot + -rot + swap 2dup 4 over > swap 0 >= and swap 4 over > swap 0 >= and and IF swap 4 * + locate* indexes-exchange ELSE 2drop THEN ; ok Older version: see left : left locate* dup dup 4 mod 0 <> IF 1- THEN indexes-exchange ; ok Factoring is very good, but when to stop? Not long ago I had a intuition of a principle of programming from what 'kiss' principle and other corrolaries could be derived: "Universe of states/code sequences/names that describe a solution(program) for a problem, should be minimal." From this ^^^^ principle, a refactored version that includes use of more states,code sequences,names is a overfactored version. Have a nice day, humptydumpty
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markwills1970@gmail.com> |
|---|---|
| Date | 2015-01-07 01:54 -0800 |
| Message-ID | <5187fb23-5854-4b89-8a98-ae61a2cf1c0c@googlegroups.com> |
| In reply to | #35518 |
On Tuesday, 6 January 2015 23:31:20 UTC, Paul Rubin wrote: > The issue with the Forth stack > solved by locals is the frequent need to muck around getting at elements > that aren't at the top. Nailed it.
[toc] | [prev] | [next] | [standalone]
| From | stephen@mpeforth.com (Stephen Pelc) |
|---|---|
| Date | 2015-01-07 12:33 +0000 |
| Message-ID | <54ad2534.84588468@news.eternal-september.org> |
| In reply to | #35518 |
On Tue, 06 Jan 2015 15:31:02 -0800, Paul Rubin <no.email@nospam.invalid> wrote: >> Stephen, who manages a very good code generator, has shown that use of >> locals is costly in performance. > >I wonder what the issue is, if the compiler does the natural things with >locals and puts them in registers. The VFX code generator was originally designed with a focus on interfacing Forth to shared library functions written in C. VFX followed that C virtual machine model of locals further than I would do now, in particular in allowing the address of a local variable to be taken. On x86 with only eight registers, there isn't much opportunity to use registers to hold data. Given the opportunity, I would do some things differently now. For an ARM target, we measured a 25% reduction in code size and a 50% increase in performance when we de-localled code in the PowerNet TCP/IP stack. With a better locals code generator, I would expect the locals and non-locals code to have similar code size and performance. Stephen -- Stephen Pelc, stephenXXX@mpeforth.com MicroProcessor Engineering Ltd - More Real, Less Time 133 Hill Lane, Southampton SO15 5AF, England tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691 web: http://www.mpeforth.com - free VFX Forth downloads
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2015-01-07 14:25 +0000 |
| Message-ID | <2015Jan7.152545@mips.complang.tuwien.ac.at> |
| In reply to | #35517 |
"Elizabeth D. Rather" <erather@forth.com> writes:
>On 1/6/15 11:37 AM, Paul Rubin wrote:
>> 2) they expose the data to other functions unnecessarily; lots of the
>> cleanliness of Forth comes from stack cells used inside a word being
>> private to that word;
>
>A lot of the power of Forth comes from re-usability of code. Sharing
>appropriate variables is a similar concept.
On the contrary, passing paramters around through global variables
makes it harder to reuse words. There are some cases where it works,
but for an arbitrary parameter, passing it in a global variable
instead of on the stack is likely to make the word harder to reuse.
And even in those cases where people use such implicit parameter
passing, e.g. in the Postscript graphics model, it turns out that it
is useful to have a way to save and restore the implicit state, with
gsave and grestore in the case of Postscript.
>> 3) they pollute the global namespace
>
>Why do named variables "pollute" namespace more than names of other
>kinds of words?
If I need an integer x in one definition and a FP value x in another
definition, the definition of both of these values as global variables
at the very least leads to shadowing of one of them, making debugging
harder. If you use locals instead of global variables, you don't have
that problem.
>Stephen, who manages a very good code generator, has shown that use of
>locals is costly in performance.
No. His code generator is better for stack manipulations than for
locals, but that's a property of his code generator, not of locals.
It's equally possible to make a code generator that puts locals in
registers and keeps stack items in memory, and on such a code
generator, the use of stack manipulation words would be costly in
performance.
Or, with additional effort, one could build a code generator that
tries to keep both stack items and locals in registers, and with such
a code generator, the performance of locals-using code would be
similar to stack-manipulation-using code.
> And, as I have been stressing, the
>ability to share data structures among various related definitions is
>valuable, and an important capability that locals deny.
Locals don't deny the use of memory for sharing data structures among
related definitions, just as the stack does not deny the use of memory
for that purpose.
- 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 2014: http://www.euroforth.org/ef14/
[toc] | [prev] | [next] | [standalone]
| From | "Alex McDonald" <blog@rivadpm.com> |
|---|---|
| Date | 2015-01-07 16:37 +0000 |
| Message-ID | <m8jnbq$2rs$1@dont-email.me> |
| In reply to | #35541 |
on 07/01/2015 14:25:43, Anton wrote: > "Elizabeth D. Rather" <erather@forth.com> writes: >>On 1/6/15 11:37 AM, Paul Rubin wrote: >>> 2) they expose the data to other functions unnecessarily; lots of the >>> cleanliness of Forth comes from stack cells used inside a word being >>> private to that word; >> >>A lot of the power of Forth comes from re-usability of code. Sharing >>appropriate variables is a similar concept. > > On the contrary, passing paramters around through global variables > makes it harder to reuse words. There are some cases where it works, > but for an arbitrary parameter, passing it in a global variable > instead of on the stack is likely to make the word harder to reuse. > > And even in those cases where people use such implicit parameter > passing, e.g. in the Postscript graphics model, it turns out that it > is useful to have a way to save and restore the implicit state, with > gsave and grestore in the case of Postscript. > I couldn't agree with you more. Global variables are evil when they become implicit parameters. It doesn't matter what language is being used. Elizabeth mentions Windows function calls with lots of variables where global impicit parameters appear to be of help. Very few programs have a requirement for 10 different values for a 10 parameter call with potentially 100s of different parameter values. Those that have a requirement for such large scale variability are, in all likelihood, badly written programs. In which case, the use of parameterised global variables is not a problem, since the additional insult of globals is unlikely to make them much worse. The impedance mismatch between a Forth FFI and Windows is easily solved without resorting to globals. <snip>
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2015-01-07 15:02 -0800 |
| Message-ID | <ffc78f8d-9526-49f9-aef5-4b418a2c5d59@googlegroups.com> |
| In reply to | #35541 |
On Wednesday, January 7, 2015 8:04:38 AM UTC-7, Anton Ertl wrote: > "Elizabeth D. Rather" <erather@forth.com> writes: > >On 1/6/15 11:37 AM, Paul Rubin wrote: > >> 2) they expose the data to other functions unnecessarily; lots of the > >> cleanliness of Forth comes from stack cells used inside a word being > >> private to that word; > > > >A lot of the power of Forth comes from re-usability of code. Sharing > >appropriate variables is a similar concept. > > On the contrary, passing paramters around through global variables > makes it harder to reuse words. There are some cases where it works, > but for an arbitrary parameter, passing it in a global variable > instead of on the stack is likely to make the word harder to reuse. > > And even in those cases where people use such implicit parameter > passing, e.g. in the Postscript graphics model, it turns out that it > is useful to have a way to save and restore the implicit state, with > gsave and grestore in the case of Postscript. Anton is correct about this. I think the major reason why ANS-Forth failed, is because Elizabeth Rather doesn't understand the concept of "reusable code" or "general-purpose data-structures." Sometimes I develop code using global variables, but then switch it all over to local variables afterward --- a good example of this is SORT in the novice package --- in SORT all of those MACRO: words were originally colon words, and all of those local variables were originally global variables, but when testing of the colon words was done I rewrote it as you see it now.
[toc] | [prev] | [next] | [standalone]
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2015-01-07 06:00 -0800 |
| Message-ID | <15be3232-0368-404b-a5fe-d18d0fbd305d@googlegroups.com> |
| In reply to | #35516 |
On Tuesday, January 6, 2015 3:37:51 PM UTC-6, Paul Rubin wrote: > 2) they expose the data to other functions unnecessarily; ... > > 3) they pollute the global namespace \ file1.fs variable x : foo ... x .. ; variable x : bar ... x ... ; \ file2.fs : foo ... y ... ; variable y : bar ... y ... ; FOO in file2.fs does not refer to the later-defined Y . It has an error. The author of BAR in file1.fs is not the slightest bit inconvenienced by the earlier X that only FOO cared about. Well, some warnings might get toggled off or ignored. If someone cares later about the earlier X , negotiations can be made at that time. 'Negotiations' mostly including mass beheadings and vocabulary-slinging - which don't involve changing your code any, but adding small bits of code around your code. The problems you're worrying about aren't Forth problems to begin with. I realize I probably won't sell you on this fact with these hand-waving arguments, but it's just one of the nice things about the language. -- Julian
[toc] | [prev] | [next] | [standalone]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2015-01-07 08:49 -0800 |
| Message-ID | <87zj9uv8n2.fsf@jester.gateway.sonic.net> |
| In reply to | #35540 |
Julian Fondren <julian.fondren@gmail.com> writes: > The author of BAR in file1.fs is not the slightest bit inconvenienced by > the earlier X that only FOO cared about. ... > The problems you're worrying about aren't Forth problems to begin with. But now there's two variables of dead weight in the microcontroller's scarce ram instead of just one, or better yet none. Also not explained is what to do if FOO or BAR is recursive. I wrote a word a while back that I just couldn't see a decent way to write without locals or (if general) some kind of ALLOCed or ALLOTed resizeable auxiliary array. It was recursive so it couldn't use VARIABLEs to hold temporaries, and it had enough stuff on the stack that juggling with DUP/ROT/etc. would have been awful. In practice the recursion depth was never higher than about 4, so setting aside a static buffer would have been ok for the application, but still. Maybe things would ease up if we were less squeamish about reaching into the data stack. I.e. we could have some primitives like OVER but that went multiple levels in. Let's face it, we already have started down that path if we accept the existence of ROT, 2OVER, and so on. So we could have OVER0, OVER1, OVER2, ... up to OVER8 say. OVER[k] is the same as k PICK so OVER0 is like DUP, OVER1 is like OVER, and so on. These aren't as ugly as PICK since they each have a predictable (not data dependent) stack action.
[toc] | [prev] | [next] | [standalone]
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2015-01-07 10:06 -0800 |
| Message-ID | <a9684474-2396-4917-a495-2ea9b8d1285f@googlegroups.com> |
| In reply to | #35546 |
On Wednesday, January 7, 2015 10:49:24 AM UTC-6, Paul Rubin wrote:
> Julian Fondren <julian.fondren@gmail.com> writes:
> > The author of BAR in file1.fs is not the slightest bit inconvenienced by
> > the earlier X that only FOO cared about. ...
> > The problems you're worrying about aren't Forth problems to begin with.
>
> But now there's two variables of dead weight in the microcontroller's
> scarce ram instead of just one, or better yet none.
I think that you need a series of concrete examples for you to to
really get anywhere talking about this. In a game of 'what if'
other people will just keep saying, OK, if that were the case,
then I would do something different, but since that's hardly ever
the case, it doesn't have a lot to do with what's actually done...
which is what I'd assume you're interested in.
Anyway, I've never written for a microcontroller, so I won't reply
to this.
> Also not explained is what to do if FOO or BAR is recursive.
variable x
: foo ( n-lim n -- ) 2dup = if 2drop exit then
x @ over cr type 1+ recurse ;
: bar ( c-addr u -- )
swap x ! 1+ 1 foo ;
s" hello" bar
h
he
hel
hell
hello ok
Recursive functions still have stacks. If you're walking a tree,
you don't need to keep copying the tree for each recursive call;
just keep navigation information on the stack. Meanwhile, in the
context of actual code, a variable might be a reasonable place for
the tree.
> I wrote a word a while back
> that I just couldn't see a decent way to write without locals or (if
> general) some kind of ALLOCed or ALLOTed resizeable auxiliary array. It
> was recursive so it couldn't use VARIABLEs to hold temporaries, and it
> had enough stuff on the stack that juggling with DUP/ROT/etc. would have
> been awful. In practice the recursion depth was never higher than about
> 4, so setting aside a static buffer would have been ok for the
> application, but still.
Why not post stuff like this to clf? You still might not like the
answer, but you'd have it.
> Maybe things would ease up if we were less squeamish about reaching into
> the data stack.
Yuck.
> Let's face it, we already have started down
> that path if we accept the existence of ROT, 2OVER, and so on.
No, we haven't. There has indeed been no movement along that path
at all. 2OVER operates on a stack of three elements -- it just
looks like more when you use the wrong stack notation. Avoiding
ROT and -ROT just causes your code to grow little return-stack
mushrooms. I tried. They grew. I said: this is just giving the
return-stack a bad name.
(And the way I think of it is: I use ROT want I want the third
element to come to me. I use -ROT when I want the first element
to go away from me. Come, come, come; go away go away go away.
There's even something subtly negative about the word -ROT)
> So we could have OVER0, OVER1, OVER2, ... up to OVER8 say.
> OVER[k] is the same as k PICK so OVER0 is like DUP, OVER1 is like
> OVER, and so on. These aren't as ugly as PICK since they each have
> a predictable (not data dependent) stack action.
They are exactly as ugly as PICK . You must be considering beauty
from the perspective of a static analysis program. For a human
OVER[k] is just going to be interchangable with k PICK
Meanwhile, have some ugly attempts at delocalizing some
triangle-drawing:
2e wide s>f f/ fconstant width
2e deep s>f f/ fconstant depth
...
: brick, { F: x F: y -- } \ bottom-left-coord --
x sf, y sf,
x width f+ sf, y sf,
x width f+ sf, y depth f+ sf,
x sf, y sf,
x width f+ sf, y depth f+ sf,
x sf, y depth f+ sf,
...
: x'th ( n -- r ) 2* sfloats here + sf@ ;
: y'th ( n -- r ) 2* 1+ sfloats here + sf@ ;
: brick ( F: x F: y -- ) \ bottom-left-coord --
fswap sf, sf,
-1 y'th -1 x'th wide f+ sf, sf,
-2 y'th -1 x'th sf, depth f+ sf,
-3 y'th -3 x'th sf, sf,
-2 y'th -2 x'th sf, sf,
-1 y'th -2 x'th sf, sf, ;
...
fvariable x fvariable y
: coord, ( -- ) x sf@ sf, y sf@ sf, ;
: deeper ( -- ) here 2 sfloats - dup sf@ depth + swap sf! ;
: wider ( -- ) here 1 sfloats - dup sf@ wide + swap sf! ;
: brick ( F: x F: y -- ) y sf! x sf! \ bottom-left coord --
coord,
coord, wider
coord, wider deeper
coord,
coord, wider deeper
coord, deeper ;
-- Julian
[toc] | [prev] | [next] | [standalone]
| From | "Alex McDonald" <blog@rivadpm.com> |
|---|---|
| Date | 2015-01-07 18:09 +0000 |
| Message-ID | <m8jsoo$ql8$1@dont-email.me> |
| In reply to | #35554 |
on 07/01/2015 18:06:37, Julian Fondren wrote: > 2OVER operates on a stack of three elements -- it just > looks like more when you use the wrong stack notation. It is more; it operates on four ( a b c d -- a b c d a b ).
[toc] | [prev] | [next] | [standalone]
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2015-01-07 10:16 -0800 |
| Message-ID | <f8933817-abfc-4dde-b938-dfcccfb8d9d4@googlegroups.com> |
| In reply to | #35555 |
On Wednesday, January 7, 2015 12:09:55 PM UTC-6, Alex McDonald wrote: > on 07/01/2015 18:06:37, Julian Fondren wrote: > > > 2OVER operates on a stack of three elements -- it just > > looks like more when you use the wrong stack notation. > > It is more; it operates on four ( a b c d -- a b c d a b ). I was thinking of the output of the word instead of what it consumes. 2OVER operates on a stack of two elements ( d1 d2 ) and produces three elements ( d1 d2 d1 ). -- Julian
[toc] | [prev] | [next] | [standalone]
Page 9 of 17 — ← Prev page 1 … 7 8 [9] 10 11 … 17 Next page →
Back to top | Article view | comp.lang.forth
csiph-web