在開發BigZ時,主要用於數理論實驗,我發現在創建,過濾或轉換集合的單詞集中需要正交性。我想要一些邏輯組合的詞彙涵蓋廣泛的命令,而不需要記住大量單詞和組合它們的方法。如何在ANS-Forth中統計當地人?
1 100 condition isprime create-set
把組上的一組堆1和100之間的所有素數,而
function 1+ transform-set
變換該組的集合中的所有數p + 1,其中p是素數少的大於100
此外,
condition sqr filter-set
離開組的棧上的形式的p + 1中的所有完全平方。
這對於自然數集很適合,但是能夠創建,過濾和轉換n元組集合,我需要能夠對未命名單詞中的當地人進行計數。我已經重新設計的話不久表示化合物的條件和功能:
: ~ :noname ;
: :| postpone locals| ; immediate
1 100 ~ :| p | p is prime p 2 + isprime p 2 - isprime or and ;
1 100 ~ :| a b | a dup * b dup * + isprime ;
執行此兩個例子給出了參數堆(1個100 XT),但要能處理這種權利,在第一種情況下的一組數字和在第二種情況下應該生成一組對,我將不得不補充單詞:|得到(1 100 xt n)其中n是當地人使用的麻木。我認爲可以使用> IN和PARSE來做到這一點,但很久以前我做了這樣的事情,所以我懷疑我現在可以做得很好。
如果你這麼說。我不知道它是如何工作的,但會試圖找出答案。 – Lehs
該文件說明(局部)在解釋和編譯模式下都是未定義的,它似乎與實現有關。 – Lehs