当前位置: 首页>>代码示例>>Scala>>正文


Scala Set类代码示例

本文整理汇总了Scala中scala.collection.immutable.Set的典型用法代码示例。如果您正苦于以下问题:Scala Set类的具体用法?Scala Set怎么用?Scala Set使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Set类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: promote

//设置package包名称以及导入依赖的类
package acumen
package interpreters
package reference2012

import Interpreter._
import acumen.Errors._
import scala.collection.immutable.Set


  def promote(f: Store => Store) : Eval[Unit] =
    mkEval (s => ((), Set.empty, Set.empty, f(s)))

  def pure[A](x:A) : Eval[A] = mkEval(s => (x, Set.empty, Set.empty, s))
  def pass = pure(())
  
  def getStore : Eval[Store] = mkEval(s => (s, Set.empty, Set.empty, s))
  def modifyStore(f:Store => Store) : Eval[Unit] = 
    mkEval(s => ((), Set.empty, Set.empty, f(s)))

  def logCId(id:CId) : Eval[Unit] = 
    mkEval (s => ((), Set(id), Set.empty, s))

  def logReparent(o:CId, parent:CId) : Eval[Unit] =
    mkEval(s => ((), Set.empty, Set((o,parent)), s))
  
  def asks[A](f : Store => A) : Eval[A] = 
    getStore >>= ((s:Store) => pure(f(s)))
  
  def sequence[A](es:List[Eval[A]]) : Eval[List[A]] = es match {
    case Nil     => pure(Nil)
    case (e::es) => for (x  <- e; xs <- sequence(es)) yield x::xs 
  }
  def sequence_[A](es:List[Eval[A]]) : Eval[Unit] =
    es match {
      case Nil     => pure(())
      case (e::es) => e >> sequence_(es)  
    }
  
  def mapM[A,B](f:A => Eval[B], xs:List[A]) : Eval[List[B]] = 
    sequence(xs map f)
  def mapM_[A,B](f:A => Eval[B], xs:List[A]) : Eval[Unit] = 
    sequence_(xs map f)

  def foldLeftM[A,B](a:A, f:(A,B) => Eval[A], l:List[B]) : Eval[A] =
    l match {
      case Nil     => pure(a)
      case (x::xs) => f(a,x) >>= (a1 => foldLeftM(a1,f,xs))
    }

} 
开发者ID:janduracz,项目名称:acumen-dev,代码行数:51,代码来源:Eval.scala


注:本文中的scala.collection.immutable.Set类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。