【发布时间】:2013-11-22 09:15:56
【问题描述】:
我在interview with Chuck Moore 中看到了这一点,他说:
操作该堆栈的单词是 DUP、DROP 和 OVER 句点。 没有,好吧 SWAP 很方便,你想要,但不是 机器指令。
所以我尝试仅用DUP、DROP 和OVER 来实现SWAP,但不知道怎么做,至少不增加堆栈。
这是怎么做到的,真的吗?
【问题讨论】:
-
@AndréLaszlo 他的观点是,SWAP 是根据其他指令实现的,例如 DUP、DROP 和 OVER。但是如何在不增加堆栈的情况下做到这一点呢?
-
@AndréLaszlo 不,从堆栈'1 2'开始,没有办法以堆栈'2 1'结束,只使用他提到的那3条指令。您可以使用 OVER 来获得 '1 2 1',但这不是 '2 1'。
-
我在这里试过
1 2 OVER DROP . .forthfreak.net/jsforth80x25.html 似乎有效? -
@AndréLaszlo 这样你又会得到
1 2。重点是交换它们。 -
@AndréLaszlo 这似乎是这样做的方法,看到接受的答案,它从来没有发生在我身上。
标签: forth