A Complete Program Inside a Tweet?
这是一篇无聊的文章,对此不感兴趣的读者可自行选择:关Tab、关窗口、退订、拔网线、砸电脑、自残、自焚、人体炸弹、当黑暗大BOSS毁灭人类、入党……
OK,你还在,我也还在,那么我来继续记流水帐:《能否在一条tweet中写一个求值程序?》
看到有人讨论面试问题,其中有人提到用“现场写一个计算器”来作为考题。在瞎掰了很久之后,我决定自己实际试试,因为“光说不练是假把式”么……当然,既然是自我挑战,那目标就设高一点:试着在一条推中写完表达式求值程序……
……嗯……显而易见地,我失败了!不过我在一条推的长度内写完了一个后辍(RPN)表达式的求值程序,共113字符:
(defun r(e)(let((s()))(dolist(x e)(if(numberp x)(push x s)(push(eval(reverse(list(pop s)(pop s)x)))s)))(car s)))
用的是标准的stack解法。
至于将中辍转后辍的程序,我只写出来这个:
(defun v(e)(let((s())(o())(m’((+ 1)(* 2)(- 1)(/ 2))))(dolist(x e)(if(listp x)(setf x(v x)))(if(numberp x)(push x o)(progn(do()((or(null s)(<(cadr(assoc(car s)m))(cadr(assoc x m)))))(push(pop s)o))(push x s))))(r(append(reverse o)s))))
足足有235字符!看来目标是达不到了……(@googollee老大也失败鸟——嗯,我很happy)
不知道有没有哪位读者是语言达人,可以完成这个伟大的目标呢?
最后声明一下:直接eval,或者调用bc这些玩赖的方式肯定能行,但太没技术含量……
——路人甲:还有比这篇日志更没有技术含量的?
——路人乙:大家洗洗睡了吧!
于是,我去准备洗洗睡了……
(如果哪位有好点子,请一定别忘了留言)

微博关注者数量在计算中的作用 – 旁观者…
I found your entry interesting thus I’ve added a Trackback to it on my weblog
…
从哪弄的酷图,真有意思(做为平面设计师,对图片特别敏感)
喜欢
文字也不错的说~~!
谢谢。一般这类图靠攒,看到好的就存在硬盘上(俗称史克收集癖),呵呵,我有一个若干G的文件夹叫Blog Picture——嗯,我承认我土,停留在N年前的模式,但是我觉得临时搜图往往达不到最低期望效果