在开发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