有人说每种编程语言都有其"复杂性预算",可用于实现其目的.但是,如果复杂性预算耗尽,每次微小变化都会变得越来越复杂,并且难以以向后兼容的方式实施.
从2010年8月开始阅读Lambda(≙Lambda表达式,异常透明度,防御方法和方法引用)的当前临时语法后,我想知道Oracle在考虑这些更改时是否完全忽略了Java的复杂性预算.
这些是我正在考虑的问题 - 其中一些更多是关于语言设计的:
谢谢!
Scala提供了不同测试框架的选择,但我想知道它们的成熟度和稳定性是否存在差异以及它们提供了哪些独特的功能.
是否有一个特定的适合各种发展的?
不同的框架可以相互交互,也可以与针对其他语言的测试运行者互操作?
当试图在在线口译员或IRC机器人中运行一些代码时,我总是想知道他们支持哪种版本的Scala.
有没有办法从解释器中检索Scala的版本?
什么是Comonad,如果可以用Scala语法描述的话.我发现了scalaz库的实现,但目前还不清楚它在哪里有用.
考虑这个课程:
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)
但这并没有真正起作用.
我知道有String#length各种方法Character可以或多或少地处理代码单元/代码点.
在Java中实际返回Unicode标准(UAX#29)指定的结果的建议方式是什么,考虑了语言/语言环境,规范化和字形集群等问题?
如何编写适用于覆盖带注释的接口方法的方法执行的aspectj切入点?例如:
interface A {
@MyAnnotation void method();
}
class B implements A {
void method();
}
Run Code Online (Sandbox Code Playgroud)
切入点execution(@MyAnnotation * *.*(..))仅在B.method()带有注释本身时匹配.还有另一种方法吗?
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用于解释每个类/特征/对象的作用以及它们如何证明它们的存在/它们如何有用.
我正在考虑实现任意精度算术的不同方法(有时称为Bignum,Integer或BigInt).
似乎常见的习惯是使用数组来存储实际值,并在空间需求增长或缩小时根据需要重新分配它.
更准确地说,似乎数组元素的位大小通常是通常支持的第二大尺寸(使溢出计算可能更容易实现?),例如语言/平台支持128位大小的数字 - > 64位数字的数组+ 128位变量来处理溢出.
有没有根本不同的方法来实现任意精度算术,或者上面是"尝试和真实"的方法来实现它没有巨大的性能损失?
我的问题是关于底层数据结构,而不是操作算法.我知道Karatsuba,Toom-Cook等.
scala ×6
java ×3
actor ×1
algorithm ×1
aop ×1
aspectj ×1
biginteger ×1
case ×1
class ×1
closures ×1
comonad ×1
const ×1
function ×1
future ×1
java-7 ×1
math ×1
monads ×1
parameters ×1
pointcut ×1
pointcuts ×1
scalatest ×1
scalaz ×1
specs ×1
standards ×1
string ×1
testing ×1
unapply ×1
unicode ×1
unit-testing ×1