小编Bru*_*una的帖子

从功能迁移到OO的问题

我习惯于使用函数式编程(主要是Haskell),我从OO(scala)开始.

我在翻译代码时遇到了麻烦.例如,那是我对H树的B树定义:

data BTree a = 
    Leaf
    |Node2 (BTree a) a (BTree a)
    |Node3 (BTree a) a (BTree a) a (BTree a)
    deriving (Eq,Read,Show) 
Run Code Online (Sandbox Code Playgroud)

这很简单.我的树是空的,或者它有一个值,是两棵树的父亲,或者是3棵子树的父亲.

OO是什么?我没有线索.我无法弄清楚我怎么能以理智的方式做到这一点.

oop haskell functional-programming scala

14
推荐指数
3
解决办法
945
查看次数

Scala:重写等于擦除的问题等于参数化类的函数

我很难理解如何使用清单.

这是我的问题:我创建了一个新的参数化类C并试图像这样重写equals:

override def equals(that:Any)=that match{
 case that:C[T] => true /*do smth else not relevant*/
 case _ => false
}
Run Code Online (Sandbox Code Playgroud)

当然我收到了"警告:类型模式C [T]中的非变量类型参数T未被选中,因为它被擦除".我尝试使用像我在许多其他功能中使用的清单:

override def equals(that:Any)(implicit manifest:Manifest[T])=that match{
 case that:C[T] => true
 case _ => false
}
Run Code Online (Sandbox Code Playgroud)

但我收到了"错误:方法等于无所事事"的消息.

我不知道如何解决这个问题.有人可以帮帮我吗?

scala equals manifest type-erasure

5
推荐指数
1
解决办法
655
查看次数

C#代数线性库

我正在寻找 C# 线性代数库。

我不想用最小二乘最小化来解决齐次线性系统。

我一直在尝试使用一些库,但我只能找到简单的解决方案。

有什么建议吗?

c# linear-algebra least-squares

5
推荐指数
1
解决办法
6122
查看次数

Scala:如何制定泛型类的参数类型的要求?

我正在创建一些参数化类C [T],我想对类型T的特性做出一些要求,以便能够成为我的类的参数.如果我只想说T继承自traits或class(就像我们使用Ordering一样),那就简单了.但我希望它也能实现一些功能.

例如,我已经看到许多预定义类型实现MinValue和MaxValue,我希望我的类型T也实现它们.我收到了一些建议来定义隐式函数.但我不希望所有用户在已经实现的情况下被迫为这些实现此功能.我也可以在我的代码中实现它们,但它似乎只是一个糟糕的快速修复.

例如,在定义堆时,我想允许用户构造一个空堆.在这些情况下,我想用T类型可能具有的最小值来实现值.显然这段代码不起作用.

class Heap[T](val value:T,val heaps:List[Heap[T]]){
    def this()=this(T.MinValue,List())
}
Run Code Online (Sandbox Code Playgroud)

我也很想收到关于真正好的在线Scala 2.8参考资料的一些建议.

requirements scala parameterization

3
推荐指数
1
解决办法
295
查看次数

理解scala中的actor的问题

我一直在努力理解斯卡拉的演员,但我还是没有得到它......

以下代码:

def main(args: Array[String]){

  while(true){
    println("inside main")
    MyActor ! "go"
  }

}

object MyActor extends Actor{
  def act(){
    loop{
      react{
        case _ => println("inside actor")
      }
    }
  }  
}
Run Code Online (Sandbox Code Playgroud)

这是印刷inside main,但不是inside actor......为什么?而且,接收和反应之间的区别是什么?

scala actor

0
推荐指数
1
解决办法
321
查看次数