|
|
1
16
编辑2 :
同时思考
所以,这里是:
这和
(但这并不一定更容易理解)。 我想你不能再短了。 无论好坏,我们也可以使用scalaz来解决:
甚至:
作为一个普通的scala程序员,人们可能不知道使用的特殊scalaz操作符和方法。(
或
更对称的解决方案是:
编辑:
抱歉,现在很奇怪,但我也想要一个无点版本。新的
如果
然后我们开始:
也许他们已经把这个放在斯卡利兹了? |
|
|
2
15
不像scalaz版本那么简洁,但另一方面,没有依赖性,
|
|
|
3
5
我先从这个开始:
但我觉得我在这里错过了一些机会,所以我可能还没有结束。 |
|
|
4
5
而不是纯粹的简洁,这显示了如果你转向
从斯卡拉斯,我用
更新 这就是我要找的:
另一个重构可能导致:
|
|
5
4
[编辑] 第二次尝试:
看起来有点“口齿不清”,但通过了测试:—) [第二次编辑] 第一个版本也可以“修复”,也可以:
|
|
6
4
不漂亮,不短,当然也不快! 但它更容易组合,更通用,更“实用”: 编辑 :使代码完全通用:)
更新2
:还有这个版本,可以更好地利用
希望你喜欢打字签名:) 更新3 :这里有一个同样适用于 界限
如果没有别的…这很清楚地说明了为什么导入参数是一件好事(tm)。假设以下代码有效:
更新4 :把溶液倒过来。这一个为将来的扩展提供了一些更有趣的可能性。
如果运气好的话,我会鼓励其他人用我的方法构建一个更好的解决方案。这就是这些事情通常的解决方法… |
|
|
7
2
这在scalaz中并不比在普通scala中容易:
(添加)
不过,一旦理解了操作符的作用,scalaz就更容易阅读了。 |
|
|
8
2
我发现当一个问题要求使用
然后你可以打电话给:
|
|
|
9
2
这是 based on Ken Bloom's answer :
最后写下这样的代码:
我认为这是非常棒的,并且不会受到Ken解决方案的问题的影响(在我看来),这是一个 乱劈 ! |
|
|
10
1
这是另一种解决方法 Landei's first answer
|
|
11
0
我正在添加另一个答案,它受到了两个问题的启发
反义词
和
德比尔斯基
-基本上,它相当于将上限和下限转换为功能(
|
|
|
12
0
简单的解决方案,使用普通的scala和匿名lambda,不带任何映射、折叠、双精度。最小/最大值,等等:
|
|
|
13
0
我最喜欢匹配案例的初始解决方案——除此之外,我不明白
下面是一个真正没有灵感的解决方案,使用内部方法:
|