gpt4 book ai didi

postscript - 如何在 postscript 中为堆栈中的每个项目添加 1?

转载 作者:行者123 更新时间:2023-12-04 08:11:33 25 4
gpt4 key购买 nike

我真的很纠结于 postscript 中的语法。该程序在堆栈中给出了 6 个值,并且需要以相同的顺序返回堆栈,每个项目都添加 1。我在这一点上迷路了,下面的程序是我能得到的最接近的程序。这当前需要一个堆栈并将 2 添加到其中的最后一个值。

/map {
1 dict begin

count 0 gt %if more than 0 on stack
{
/x exch def %get first value
x 1 add
/x

}if

end
} def

最佳答案

可能最简单的方法是将值包装在一个数组中。然后你可以使用 forall循环对每个项目进行操作。

/map {
6 array astore
{
1 add
} forall
} def
如果要避免创建数组,可以使用 roll重新排列堆栈上的项目。
/map {
6 {
1 add
6 1 roll
} repeat
} def
另请注意,在您的代码中,您可能不想要最后一个 /x (它将名称留在堆栈上,稍后可能会妨碍它)。并且由于堆栈中的顶部项目已经是堆栈中的顶部项目,因此您不需要 /x exch def x .但是,您可以继续这种风格,只需对所有 6 个值进行定义。
/map {
/z exch def
/y exch def
/x exch def
/w exch def
/v exch def
/u exch def
u 1 add
v 1 add
w 1 add
x 1 add
y 1 add
z 1 add
} def

关于postscript - 如何在 postscript 中为堆栈中的每个项目添加 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65928774/

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