gpt4 book ai didi

definition - 如何在 Forth 定义中创建单词

转载 作者:行者123 更新时间:2023-12-04 02:00:37 28 4
gpt4 key购买 nike

我正在使用 Gforth ,我想在定义中创建一个词。在 Gforth 的 cmd 行中,我可以输入:

create foo
ok

或者更具体地说,我定义了一个数组函数,它期望堆栈上的大小并创建一个带有该数组地址的字:
: array ( n -- ) ( i -- addr)
create cells allot
does> cells + ;

所以如果我输入 10 array foo然后我可以使用 foo之后。

但如果我写 10 array foo在另一个定义中,它给了我一个编译错误。我试过用 s" foo" 替换 foo它编译,但它在运行时爆炸,说:

Attempt to use zero-length string as a name



有没有办法做到这一点?

最佳答案

在 gforth 中做到这一点的一种方法:

: bar   10 s" foo" ['] array execute-parsing ;

其他实现方式不同,例如 http://pfe.sourceforge.net/words/w-header-015.html

在 Standard Forth 中做到这一点并不容易,但这可能已经足够了:
: bar   10 s" array foo" evaluate ;

关于definition - 如何在 Forth 定义中创建单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572704/

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