一行代码写一个计算器,一行代码写计算器,动态语言通常都提供了在运


动态语言通常都提供了在运行时动态执行代码的能力,有些允许直接读入表达式(如Lisp的read),或者提供执行字符串形式的表达式(如JavaScript的eval)。但说白了,就是这类语言提供数据与表达式序列化成文本并从文本中反序列化的能力。

所以有些Lisp厂商希望对eval函数收费,因为此类函数提供了完整的解释器的能力!因此,这一行代码不仅仅是一个计算器,更是一个语言解释器。

欢迎大家在评论里补充你熟悉的语言的解决方案

鼻祖:Common Lisp版     (eval (read))Python 2.X 版     print input()Python 3 版     print(eval(input()))Ruby 版     eval getsBash 版     read e; ((e=$e)); echo $e客户端 JavaScript     document.write(eval(prompt('', '')));PHP CLI 版      <?php eval("echo " . fgets(STDIN) . ";");Perl 版     print eval <>#该片段来自于http://byrx.net

评论关闭