Skip to content

jeforth 新增以下 interpret state 的 flow control 命令

H.C. Chen edited this page Apr 5, 2018 · 6 revisions

我喜歡用 forth 的 interpret state 做事,甚麼小事都用。日常生活本該寫個程式處理的往往因為寫程式太麻煩只好繞遠路避開寫程式,即使是用 forth 也是這樣。讓 forth interpret state 具備 ```[if]..[else]..[then]```, ```[begin]..[again]```, ```[begin]..[until]```, ```[for]..[next]``` 等命令就不一樣了。可以在 interpret state 嘗試幾下把事情搞定,比定義一堆 word 感覺更即興自然。

jeforth 新增以下 interpret state 的 flow control 命令

[begin] , [again] , [until] , [for] , [next] 

下達 help [begin] 即見簡短說明,其餘亦同。請在直接執行 GitHub 上的 jeforth.3htm 動手嘗試。 下達 see [begin] 即見 source code,其餘皆然。早先介紹過的 cut , rewind 等相關命令顯得簡陋,別再用了。

Example:

十進制 0 .. 100 轉成 八進制。 Copy-paste 以下程式到上述網頁上的 jeforth 去執行。

101 ?dup [if] dup [for] dup r@ - ( COUNT i ) dup 10 base! 
3 .0r ."  -> " 8 base! 3 .0r cr ( COUNT ) [next] drop [then] 10 base!

The End