大佬教程收集整理的这篇文章主要介绍了功能Clojure还是强制Groovy更易读?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
不,真的,花一两分钟,试一试。
“职位”是做什么的?
编辑:根据cgrand的建议进行简化。
(defn redux [[current next] flag] [(if flag current next) (inc next)]) (defn positions [coll] (map first (reductions redux [1 2] (map = coll (rest coll)))))
现在,这个版本怎么样?
def positions(coll) { def (current,next) = [1,1] def prevIoUs = coll[0] coll.collect { current = (it == prevIoUs) ? current : next next++ prevIoUs = it current } }
我正在学习Clojure,我很喜欢它,因为我一直喜欢功能编程。想到Clojure解决方案需要更长的时间,但是我非常喜欢不得不考虑一个优雅的解决方案。 Groovy解决方案是好的,但是我正在找到这种类型的命令式编程无聊和机械的。经过12年的Java,我感觉到与Clojure的功能编程是我需要的提升。
对了,就到了那么,我必须诚实地说,我想知道几个月后我会回头看看Clojure的代码。当然我可以评论它,但我不需要评论我的Java代码来了解它。
所以我的问题是:这是一个越来越多的功能编程模式的问题?功能性编程大师阅读这段代码,找到它吗?你觉得哪个版本比较容易理解?
编辑:这段代码是根据玩家的积分来计算玩家的位置,同时跟踪那些被绑定的玩家。例如:
Pos Points 1. 36 1. 36 1. 36 4. 34 5. 32 5. 32 5. 32 8. 30
同样,我也可以比西班牙语更容易阅读英文,但也不会说这些语言的内在可读性。 (西班牙语实际上可能是简单和一致性方面的两个“更易读”的语言,但我仍然无法阅读)。我现在正在学习日语,有一个困难的时刻,但是日本的本地人说英语是一样的。
如果你花了大部分时间阅读Java,当然,像Java这样的东西比起没有的东西会更容易阅读。直到你花了很多时间看着Lispy语言,看着C语言,这可能仍然是真的。
要了解一种语言,除了别的以外你必须熟悉一下:
>语法([vector] vs.(list),连字符名称)
>词汇(减少是什么意思?你/你可以在哪里查找?)
>评估规则(将功能作为对象进行处理)大多数语言都是错误的。)
>成语,如(地图首先(一些减少额外的累积值))
所有这些都需要时间和实践和重复学习和内化。但是如果你花了6个月的时间来阅读和撰写大量的Clojure,那么你不仅可以从现在开始6个月就能了解Clojure代码,还可以比现在更了解它,甚至可以简化它。这个怎么样:
(use 'clojure.contrib.seq-utils) ;;' (defn positions [coll] (mapcat #(repeat (count %) (inc (ffirst %))) (partition-by second (indexed coll))))
看一下我一年前写的Clojure代码,我很害怕它是多么糟糕,但我可以看清楚。 (不要说你的Clojure代码是可怕的,我根本看不懂,我没有上师)
以上是大佬教程为你收集整理的功能Clojure还是强制Groovy更易读?全部内容,希望文章能够帮你解决功能Clojure还是强制Groovy更易读?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。