You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Forth中基于栈上的字符串创建新单词?

问题解答

1. 用parse-name配合create是否可行?

可行,但要注意parse-name返回的是字符串的地址与长度,而create默认从输入流读取名字。你可以通过将parse-name获取的字符串写入词典缓冲区,再调用create来实现,示例代码:

: create-from-parsed ( addr len -- )
  >r
  buffer: temp
  r@ temp swap move
  temp r@ c!
  temp create
;

2. 能否借助evaluate实现?

完全可以。evaluate的核心作用就是执行字符串形式的Forth代码,你只需要把create关键字和parse-name得到的字符串拼接成合法的命令字符串,再交给evaluate执行即可,示例代码:

: create-via-evaluate ( addr len -- )
  s" create " swap
  evaluate
;

这种方式更直观,无需操作底层缓冲区,但要保证拼接后的字符串是合法的Forth名字,避免特殊字符引发解析错误。


内容的提问来源于stack exchange,提问作者Olle Härstedt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:04:51