gpt4 book ai didi

forth - 在 Forth 中,如果我调用 DOES> 两次会发生什么?

转载 作者:行者123 更新时间:2023-12-04 18:37:31 24 4
gpt4 key购买 nike

John Hayes 的 ANS Forth 测试套件包含如下所示的测试:

: WEIRD: CREATE DOES> 1 + DOES> 2 + ; 
WEIRD: W1
W1

我不知道这到底应该做什么。 ANS Forth SpecificationDOES>基本上是无法穿透的。

从阅读测试套件来看,它似乎期待第一次调用 DOES>修改 W1 ,但随后调用 W1激活第二个 DOES> .我假设第二个对最近一次调用 CREATE 定义的单词进行操作。 ,但那已经是 DOES> ified,所以我不确定那应该做什么。

gforth 通过了测试套件,所以测试似乎是有效的;但我的宠物 Forth 解释器没有,我需要弄清楚如何让它工作......

最佳答案

第二次调用DOES>还修改了W1 .
WEIRD:创建 W1运行时操作为 1 + DOES> 2 + .第一次调用W1将运行时设置为 2 + .

如果您更改代码以打印某些内容,则这一点会更加明显,例如

: weird:   create  does> drop ." ONE"  does> drop ." TWO" ; ok
weird: w1 ok
w1 ONE ok
w1 TWO ok
w1 TWO ok
w1 TWO ok

对此的解释是 DOES>总是对最新定义的词进行操作。

关于forth - 在 Forth 中,如果我调用 DOES> 两次会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com