gpt4 book ai didi

repeat - 是否可以在因子代码中创建重复功能?

转载 作者:行者123 更新时间:2023-12-04 18:20:57 26 4
gpt4 key购买 nike

我正在尝试在因子代码中创建一个名为 repeat 的函数,该函数需要一个非负整数 n 并在其后加上引号 q。它导致 q 和 n 从堆栈中弹出,然后 q 的内容执行 n 次。

所以如果代码

[drop] 5 repeat

被执行它会应用 drop 到栈顶 5 次。

我想知道是否可以在因子代码中编写它,或者我是否必须编辑解释器并以这种方式添加重复作为新函数?

最佳答案

使用递归:

: repeat ( quot n -- ) dup 0 > [ over 2dip 1 - repeat ] [ 2drop ] if ; inline

使用循环:
: repeat ( quot n -- ) [ dup 0 > ] [ over 2dip 1 - ] while 2drop ; inline

最后,使用预定义的词汇 times :
: repeat ( quot n -- ) swap times ; inline

关于repeat - 是否可以在因子代码中创建重复功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707566/

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