首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数用于丢弃重复,应用于数字。

函数用于丢弃重复,应用于数字。
EN

Code Review用户
提问于 2015-11-01 10:36:58
回答 1查看 95关注 0票数 2

解决一个4 4Clojure问题时,我得到了这个答案来压缩序列(问题30):

代码语言:javascript
复制
#(map first (partition-by identity %))

用简单的数字来做这项工作,最好的方法是什么?

我的解决办法是:

代码语言:javascript
复制
(defmulti comp class)
(defmethod comp java.lang.Long [x] x)
(defmethod comp :default [x] (map first (partition-by identity %)))

代码增加了两倍多。有没有更好的解决办法?更短?更惯用吗?我尝试用java.lang.Long扩展ISeqable,但失败了。

EN

回答 1

Code Review用户

发布于 2015-11-03 19:56:08

不错的解决方案。您的解决方案已经非常适合于数字序列(以及更多)。comp多方法不是一个好主意。它是一个函数,它可以接受一个seq或一个数字。您应该避免创建使用不同类型的参数的函数(这会让人感到困惑,并建议您最好使用2个函数或协议),除非有一个很好的理由。在这种情况下,comp没有添加任何有用的东西(为什么要添加它?)您有用例吗?)

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/109438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档