1

GNU DC 垂直显示堆栈,(f显示堆栈)

1 2 3 4
f  # to display the stack
4
3
2
1

有没有办法改变它更像FORTH?当 GNU FORTH 水平显示堆栈时, (.s显示堆栈)

1 2 3 4  ok
.s <4> 1 2 3 4  ok
4

1 回答 1

2

您可以在每次 dc 启动时读取的 ~/.dcrc 中创建自定义函数。

猫 ~/.dcrc

[
# if the stack is empty
[ 2 + [stack empty] p 0 :- Q ]s-
z d 0 =- 0 :-
# keep the stack in indexed array -
[ z :- z 0 <- ]s-
l-x
# restore the stack
[ 0 ;- 1 + d ;- ;- r d ;- 1 + r :- 0 ;- d 1 + ;- r !<- ]s-
1 0 ;- 1 + :-
l-x
# displays the stack horizontally
[ 0 ;- d 1 + d ;- ;- n [ ] n d d ;- 1 + r :- ;- !>- ]s-
1 0 ;- 1 + :- l-x [ ok] p 0 :-
]s-

你这样称呼它:

echo '7 16 8 9' | dc -f - -e 'l-x f'

你得到:

7 16 8 9  ok
9
8
16
7

您不能使用注册 -

于 2018-10-14T10:50:23.443 回答