Subject: Re: [TI994A] TurboForth preparation

From: Owen Brand <[email-masked]>
Date: Sun, 11 Apr 2010 08:41:00 -0400

You know-- the stack is actually part of what I LIKE about Forth.  It  
forces the programmer to create a very tight structure because you  
don't just define variables and pull them up later on... The values  
that are acted upon by words must be near the top of the stack and  
that forces me to take more care in structuring words which are  
combinations of other words.  The challenge is as exciting to me as  
the strengths of the language.  :) Im lazy, but sometimes I find  
something that pushes my mind the right way!!!  Forth is one of those  
things.  :). Thanks Mark and Bill!!!

Owen Brand
Opry99er.com

On Apr 11, 2010, at 4:57 AM, mark wills <[email-masked]>  
wrote:

> >In this example, I entered the parameters (5 and 6) from the  
> keyboard, but the numbers 5 and 6 would more than likely be passed  
> onto the stack by another word for use prior to using EQUA.  Hope  
> that makes sense...  I'm just learning, but I love the concepts here!
>
>
>
> You sound almost apologetic, but you shouldn't be. That is EXACTLY  
> what you are supposed to do. You're getting it. You build your  
> "program" word by word, testing as you go by feeding your words data  
> from the stack:
>
> : ODD? DUP 1 AND IF . ." IS ODD" ELSE . ." IS EVEN" THEN CR ;
>
> 1 ODD? <enter>
> 1 IS ODD
> ok
> 200 ODD?
> 200 IS EVEN
> ok
>
> Here, we are testing our word ODD? from the command line. When you  
> have tested it and you happy that it works, you can move on and  
> forget about it.
>
> In this way, programs are built 'incrementally' - as you go. They  
> are "grown" more than written. I tend to write XB programs in the  
> same way using SUBs.
>
> -------
>
> I want to say a little something about "programs" in Forth, but if  
> this blows your head, just forget about it for now. There is no such  
> thing as a "program" really in Forth. They are just a collection of  
> words in a dictionary. What you are actually doing when you write a  
> word is expanding Forth itself...
>
> Think about it. That word we just wrote: ODD? It now exists in your  
> Forth system in exactly the same way as any other word like + - .S  
> DUP etc. They are just words that exist. The art is writing words  
> that call other words that actually do what you want to accomplish.  
> If that makes sense.
>
> The paradigms introduced in Forth are *so* different from other  
> 'rigid' procedural languages, that for a good while the feeling is  
> uncomfortable. It's like God turned gravity the other way up.  
> Nothing feels familiar. Everything is weird and strange. But you  
> start to get used to it. After a while, when you go back to other  
> languages, you will feel limited and constrained and catch yourself  
> uttering "Heck, I could do this in two minutes in Forth".
>
> The 'strange feeling' is one of the reasons (I think) for Forth's  
> limited success. Most languages these days are aimed at dumbing  
> down, and making things easier. Forth puts you in firm control. If  
> you screw up, tough. This perceived difficulty is what turns a lot  
> of people off. That and the stack. As I mentioned in a previous  
> mail, in most languages, you only manage execution flow. In Forth,  
> you manage execution flow, AND data flow, as you have to manage the  
> stack. It is harder, there's no doubt. This turns lazy people off.  
> Myself included. I used to read Forth code posted by Stephen Shaw in  
> TI*MES and think "what a total load of crap", because *I* couldn't  
> understand it, and *I* am a genius programmer, because my mum says  
> so (I was young) therefore if *I* can't understand it, it must be  
> crap.
>
> I wish I had taken the time back then, but, then again, I may have  
> been too young to appreciate Forth fully.
>
>
>

---

From: fdos <[email-masked]>
Date: Mon, 12 Apr 2010 08:30:07 -0700

Owen,

It really sounds like you're on your way to Forth heaven, and it seems, 
in the process, some others are starting to take another look at Forth also.

Always remember that you don't have to know everything there is to know 
about Forth from the get go.  You only have to learn the things you need 
in order to do the same things you were doing in XB, and then learn the 
things that will do the things you wanted to do in XB but couldn't.

After you accomplish this goal you can let your imagination take you on 
a step by step process into the DEEP things of Forth--Chuck knows. :-)

Bill S

Owen Brand wrote:
> forces the programmer to create a very tight structure because you don't 
> just define variables and pull them up later on... The values that are 
> acted upon by words must be near the top of the stack and that forces me 
> to take more care in structuring words which are combinations of other 
> words.  The challenge is as exciting to me as the strengths of the 
> language.  :) Im lazy, but sometimes I find something that pushes my 
> mind the right way!!!  Forth is one of those things.  :). Thanks Mark 
> and Bill!!!
> 
> Owen Brand
> <http://Opry99er.com>Opry99er.com <http://Opry99er.com>
> 
> On Apr 11, 2010, at 4:57 AM, mark wills < 
> <mailto:[email-masked]>[email-masked] 
> <mailto:[email-masked]>> wrote:
> 
>      
> 
>     so (I was young) therefore if *I* can't understand it, it must be crap.
>

---

From: Owen Brand <[email-masked]>
Date: Mon, 12 Apr 2010 17:45:18 -0400

Thanks-- it's starting to make alot more sense now.   :) I haven't had  
time for Forthing today, but i've been doing mental Forth all day.  :)

Owen Brand
Opry99er.com

On Apr 12, 2010, at 11:30 AM, fdos <[email-masked]> wrote:

>> don't
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>

---

From: mark wills <[email-masked]>
Date: Tue, 13 Apr 2010 21:13:56 +0000 (GMT)

Completely agree.

Learn how to do the Forth equivalent of some XB stuff, Bill, myself, Bob, Ben and others are here to help.

Then we'll introduce you to some neat concepts like vectored execution, and your mind will be blown (in a good way!)

----- Original Message ----
> From: fdos <[email-masked]>
> To: [email-masked]
> Sent: Mon, 12 April, 2010 16:30:07
> Subject: Re: [TI994A] TurboForth preparation
> 
> Owen,

It really sounds like you're on your way to Forth heaven, and it 
> seems, 
in the process, some others are starting to take another look at 
> Forth also.

Always remember that you don't have to know everything there 
> is to know 
about Forth from the get go.  You only have to learn the 
> things you need 
in order to do the same things you were doing in XB, and 
> then learn the 
things that will do the things you wanted to do in XB but 
> couldn't.

After you accomplish this goal you can let your imagination 
> take you on 
a step by step process into the DEEP things of Forth--Chuck 
> knows. :-)

Bill S

Owen Brand wrote:
> Owen 
> Brand
> <
> >http://Opry99er.com>Opry99er.com <
> target=_blank >http://Opry99er.com>
> 
> On Apr 11, 2010, at 
> 4:57 AM, mark wills < 
> <mailto:
> ymailto="mailto:[email-masked]" 
> href="mailto:[email-masked]">[email-masked]>
> ymailto="mailto:[email-masked]" 
> href="mailto:[email-masked]">[email-masked] 
> 
> <mailto:
> href="mailto:[email-masked]">[email-masked]>> 
> wrote:
> 
>      
> 
>    
>     that makes sense... I'm 
> just learning, but I love the concepts here!
> 
> 
> 
> 
>     1 
> IS ODD
>     In 
> this way, programs are built 'incrementally' - as you go. They
>  
>     this blows your head, just 
> forget about it for now. There is no such
>     thing as a 
> "program" really in Forth. They are just a collection of
>    
>     If that makes 
> sense.
>     Nothing feels 
> familiar. Everything is weird and strange. But you
>     start 
> to get used to it. After a while, when you go back to other
>    
>     limited success. Most 
> languages these days are aimed at dumbing
>     down, and making 
> things easier. Forth puts you in firm control. If
>     you 
> screw up, tough. This perceived difficulty is what turns a lot
>  
>     stack. It is harder, 
> there's no doubt. This turns lazy people off.
>     Myself 
> included. I used to read Forth code posted by Stephen Shaw in
>  
>     I wish I 
> had taken the time back then, but, then again, I may have
>    

Yahoo! Groups 
> Links

> >http://groups.yahoo.com/group/TI994A/

> href="http://groups.yahoo.com/group/TI994A/join" target=_blank 
> >http://groups.yahoo.com/group/TI994A/join
    (Yahoo! ID 
> required)

> href="mailto:[email-masked]">[email-masked] 
> 
    
> href="mailto:[email-masked]">[email-masked]

> ymailto="mailto:[email-masked]" 
> href="mailto:[email-masked]">[email-masked]

> href="http://docs.yahoo.com/info/terms/" target=_blank 
> >http://docs.yahoo.com/info/terms/