小编xyz*_*xyz的帖子

匿名函数的参数类型

我在使用这段代码时遇到了一些麻烦.它应该是一个带有Elements BinaryOperations和UnaryOperations的OperationTree.方法eval进行评估并在地图中查找变量.

这是代码

 1 import collection.immutable.HashMap
  2 sealed abstract class OpTree[T]{
  3 
  4   def eval(v:HashMap[Char,T]):T = {
  5     case Elem(x) => x
  6     case UnOp(f,c) => {
  7       f(c.eval(v))
  8     }
  9     case BinOp(f,l,r) => {
 10       f(l.eval(v),r.eval(v))
 11     }
 12     case Var(c) => {
 13       v.get(c)
 14     }
 15   }
 16 }
 17 //Leaf
 18 case class Elem[T](elm:T) extends OpTree[T]
 19 //Node with two sons
 20 case class UnOp[T](f:T => T, child:OpTree[T]) extends OpTree[T]
 21 //Node with one son …
Run Code Online (Sandbox Code Playgroud)

scala anonymous-function scala-collections

8
推荐指数
1
解决办法
6225
查看次数