程序(115 个字符)
(defun rpn(e)(let((s()))(dolist(x e)(if(numberp x)(push x s)(push(eval(reverse(list(pop s)(pop s)x)))s)))(car s)))
一个简单的测试:
CL-USER> (rpn '(1 2 3 * + 4 2 / +))
它返回9
有人对在一条推文中编写一个中缀到 RPN 程序有一些好的想法吗?我失败了。我可以用 235 个字符写出那个。
程序(115 个字符)
(defun rpn(e)(let((s()))(dolist(x e)(if(numberp x)(push x s)(push(eval(reverse(list(pop s)(pop s)x)))s)))(car s)))
一个简单的测试:
CL-USER> (rpn '(1 2 3 * + 4 2 / +))
它返回9
有人对在一条推文中编写一个中缀到 RPN 程序有一些好的想法吗?我失败了。我可以用 235 个字符写出那个。