小编soc*_*soc的帖子

Java 7当前Lambda提案的复杂性?(2010年8月)

有人说每种编程语言都有其"复杂性预算",可用于实现其目的.但是,如果复杂性预算耗尽,每次微小变化都会变得越来越复杂,并且难以以向后兼容的方式实施.

从2010年8月开始阅读Lambda(≙Lambda表达式,异常透明度,防御方法和方法引用)的当前临时语法后,我想知道Oracle在考虑这些更改时是否完全忽略了Java的复杂性预算.

这些是我正在考虑的问题 - 其中一些更多是关于语言设计的:

  • 拟议的新增内容是否与其他语言选择的方法相当?
  • 通常是否可以在语言中添加此类添加内容保护开发人员免受实现的复杂性影响?
  • 这些新增内容是否已经达到了Java-as-a-language演变的终点,或者在改变具有巨大历史的语言时是否会出现这种情况?
  • 在语言演变的这一点上,其他语言采用了完全不同的方法吗?

谢谢!

java extension-methods closures language-design java-7

21
推荐指数
1
解决办法
1860
查看次数

Scala测试:SUnit,ScalaTest,ScalaCheck,Specs和ParTest的状态和关系是什么?

Scala提供了不同测试框架的选择,但我想知道它们的成熟度和稳定性是否存在差异以及它们提供了哪些独特的功能.

是否有一个特定的适合各种发展的?

不同的框架可以相互交互,也可以与针对其他语言的测试运行者互操作?

testing unit-testing specs scala scalatest

21
推荐指数
2
解决办法
709
查看次数

如何在REPL中检索Scala的版本?

当试图在在线口译员或IRC机器人中运行一些代码时,我总是想知道他们支持哪种版本的Scala.

有没有办法从解释器中检索Scala的版本?

scala

21
推荐指数
4
解决办法
2958
查看次数

Scala中的Comonad示例

什么是Comonad,如果可以用Scala语法描述的话.我发现了scalaz库的实现,但目前还不清楚它在哪里有用.

monads scala scalaz comonad

20
推荐指数
2
解决办法
2495
查看次数

如何模式匹配具有多个参数列表的类?

考虑这个课程:

class DateTime(year: Int, month: Int, day: Int)(hour: Int, minute: Int, second: Int)
Run Code Online (Sandbox Code Playgroud)

unapply方法将如何,如果我想匹配以下内容:

dt match {
  case DateTime(2012, 12, 12)(12, _, _) => // December 12th 2012, 12 o'clock
  /* ... */
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

def unapply(dt: DateTime) = 
  Some((dt.year, dt.month, dt.day),(dt.hour, dt.minute, dt.second))
Run Code Online (Sandbox Code Playgroud)

但这并没有真正起作用.

scala class case pattern-matching unapply

19
推荐指数
2
解决办法
3236
查看次数

如何在Java中正确计算String的长度?

我知道有String#length各种方法Character可以或多或少地处理代码单元/代码点.

在Java中实际返回Unicode标准(UAX#29)指定的结果的建议方式是什么,考虑了语言/语言环境,规范化和字形集群等问题?

java string unicode standards character-encoding

19
推荐指数
3
解决办法
4万
查看次数

Function.const的目的是什么?

它在ScalaDoc中但没有太多文档.它似乎总是返回第一个参数.

Function.const(1)(2)例如返回1.

它为什么存在,为什么有用?

parameters scala const function library-design

17
推荐指数
2
解决办法
3663
查看次数

@AspectJ切入点覆盖带有注释的接口方法的方法

如何编写适用于覆盖带注释的接口方法的方法执行的aspectj切入点?例如:

interface A {
  @MyAnnotation void method();
}
class B implements A {
  void method();
}
Run Code Online (Sandbox Code Playgroud)

切入点execution(@MyAnnotation * *.*(..))仅在B.method()带有注释本身时匹配.还有另一种方法吗?

java aop aspectj pointcuts pointcut

17
推荐指数
1
解决办法
1万
查看次数

Scala中多个期货的奇怪案例

Scala中与Future相关的类和特性之间的联系是什么,为什么它们被分散在不同的包中?

我找到了那些:

abstract class scala.actors.Future
object         scala.actors.Futures
trait/object   scala.collection.parallel.FutureThreadPoolTasks
trait          scala.concurrent.FutureTaskRunner
trait          scala.parallel.Future    (the package consists of only this file...)
Run Code Online (Sandbox Code Playgroud)

他们有显着不同的东西,还是有其他原因导致他们无法巩固?

是否有一个很好的例子显示何时会使用这一个或另一个?

编辑: Bounty用于解释每个类/特征/对象的作用以及它们如何证明它们的存在/它们如何有用.

parallel-processing scala future actor

16
推荐指数
1
解决办法
2688
查看次数

是否有任意精度算术的通用实现策略,无论特定语言如何都是有效的?

我正在考虑实现任意精度算术的不同方法(有时称为Bignum,Integer或BigInt).

似乎常见的习惯是使用数组来存储实际值,并在空间需求增长或缩小时根据需要重新分配它.

更准确地说,似乎数组元素的位大小通常是通常支持的第二大尺寸(使溢出计算可能更容易实现?),例如语言/平台支持128位大小的数字 - > 64位数字的数组+ 128位变量来处理溢出.

有没有根本不同的方法来实现任意精度算术,或者上面是"尝试和真实"的方法来实现它没有巨大的性能损失?

我的问题是关于底层数据结构,而不是操作算法.我知道Karatsuba,Toom-Cook等.

language-agnostic algorithm math biginteger

16
推荐指数
1
解决办法
1472
查看次数