例題
一根电线杆,埋在的下的部分是全长的十三分之二,露出地面的部分是5米。这根电线杆全长多少米?
我的解法:
variable out
variable all
variable in
13 out !
3 all !
2 in !
all @ in @ -
out @ swap /
all @ *
.
可是,這個與我們使用的代數表達式差距很大:
in = 2/3 all
out = all - in
out = 5
如果能像代數表達式那樣表達,也許會更容易理解和使用。
我是新手,所以貼出來看看大家有沒有碰到此類情況?
gforth :
in file included from *the terminal*:0
infix_parser1.f:7: Undefined word
IF @ 0FFFF AND DUP>R [ ASCII 0 ASCII x 100 * + ] LITERAL =
^^^^^
Backtrace:
$7FB61DC5E7D0 throw
$7FB61DC73288 no.extensions
win32forth
FLOAD 'Z:\infix_parser1.f'
THEN FIND-BUFFER PLACE FIND-BUFFER ?UPPERCASE (FIND) ;
^^^^^^
Error(-13): (FIND) is undefined in file Z:\INFIX_PARSER1.F at line 48
請問,你用的是哪個forth?
算式: ( 1 + 2 ) / 3 =
或
12 VALUE ABC
23 VALUE XYZ
算式: ( ABC * 45 ) + ( XYZ / 6 ) =
這種方式 ,用來解決 複雜算式 在後置 的 難以觀看 ; 你覺得如何呢?!
註: 透過 word & 反波蘭法的解析 來做這件事 ! www.figtaiwan.org 燕南的範例 看看還在嗎?!(n年前寫的,屢經
中研院 HD掛掉,不知在否)?!
> > > 我是新手,所以貼出來看看大家有沒有碰到此類情況?- 隱藏被引用文字 -
>
> - 顯示被引用文字 -
On 4月24日, 下午12时07分, 燕南 <ezfo...@gmail.com> wrote:
> 以前 我寫過發表 (win32forth)
>
> 算式: ( 1 + 2 ) / 3 =
>
> 或
>
> 12 VALUE ABC
> 23 VALUE XYZ
>
> 算式: ( ABC * 45 ) + ( XYZ / 6 ) =
>
> 這種方式 ,用來解決 複雜算式 在後置 的 難以觀看 ; 你覺得如何呢?!
>
> 註: 透過 word & 反波蘭法的解析 來做這件事 ! www.figtaiwan.org燕南的範例 看看還在嗎?!(n年前寫的,屢經
如果我使用的 Forth 不是以 C 語言寫成,而是類似 eforth 以組言語言寫成。我仍然可以以 C 語言寫出那個函數,編譯時產生對應的組
合語言,再把組合語言修改後 copy 到 能和 eforth 連結的檔案內。編譯好後讓 forth 呼叫。
對於簡單的數學運算,我會直接用 forth 的解譯器及後置的方法來解題,把複雜的問題先拆成可以分別測試的片段。再在程式中加入中位運算的註解。這
樣,閱讀程式的人就能瞭解程式的作用。
說到這兒,我覺得有些新進的朋友把 meta compiler 當成 Forth 中一個很難企及的標的,以為不會 meta compiler 就
不是 forth 的高手似的。我認為在這多語言的時代, meta compiler 已經屬於 Forth 的過去式,它太複雜,不值得瞭解。在這
個時代,只要學會如何用 C 或是組合語言寫 Forth 就好。
亚斯的思维角度也很启发我。
情況<a> 通常 在要做 "木馬屠城"時最好用, 在新公司 非forth環境下,可以排除 沒用過forth的程式員心防!
> > > 個時代,只要學會如何用 C 或是組合語言寫 Forth 就好。- 隱藏被引用文字 -
>
> - 顯示被引用文字 -
FLOAD 'D:\Forth\Libary\逆波蘭式\反波蘭式.f'
原 式: abc-(cef*dty+big)-girl+disk
反波蘭式: abc cef dty * big + - girl - disk +