这是一个lisp过程,简单地将’a’添加到’b’的绝对值:
(define (a-plus-abs-b a b) ((if (> b 0) + -) a b))
我认为这很漂亮,我试图找到用JavaScript编写这个的最好方法.但是我的JavaScript代码不漂亮:
var plus = function(a,b) { return a + b; }; var minus = function(a,b) { return a - b; }; var aPlusAbsB = function(a,b) { return (b > 0 ? plus : minus)(a,b); }
主要的问题是我不能使用和 – 符号作为他们真正代表的函数的引用,因为我可以使用lisp.任何人都可以想出一种更优雅的方式做这样的事情,或者我是否达到语言界限?
显然,我可以这样做:
var aPlusAbsB = function(a,b) { return a + Math.abs(b); }
解决方法
原文地址:https://www.jb51.cc/js/159452.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。