【发布时间】:2013-01-29 12:26:18
【问题描述】:
比这更不重要的事情:
def subs(s: String) = for {start <- 0 to s.length; end <- i to s.length} yield s.substring(start, end)
【问题讨论】:
-
鉴于此代码运行良好,您可能希望将其发布到 codereview 而不是 stackoverflow。
-
我总是对各种不同的 stackexchange 网站感到困惑 - 有程序员、codereview、stackoverflow、codegolf 以及大约六家其他网站,根据我的经验,我在这里得到的响应比其他任何地方都好。
-
我可能是错的,这就是我的感觉。 Codereview 似乎有更长的 sn-ps 代码,但它肯定是为了查看您的代码是否是惯用的。但我同意 stackoverflow 似乎是一个包罗万象的东西。程序员似乎更关注编程的非实际编码部分,即在团队中工作,处理文档等。Codegolf 只是试图获得最少的代码量。再说一次,你在这里的时间比我看起来要长得多。
-
我不知道你为什么认为这是必要的。没有变异状态,您使用的是
yield(而不是非yieldfor体内的某种累加器变异。它似乎也比@Rogach 的建议更透明。 -
start 和 end 是你可以争论的变异状态。我同意我上面的 sn-p 比 @rogach 的更具可读性,而且我总是会使用我的 snipper 而不是他的,但是在语言中,让你做 2 个列表的交叉乘积的命令式解决方案较少(例如在 Haskell 中)。跨度>
标签: scala functional-programming idioms