小编Cur*_*ycu的帖子

scala前向引用扩展了定义

case object Empty extends Stream[Nothing]
case class Cons[+A](h: () => A, t: () => Stream[A]) extends Stream[A]

sealed trait Stream[+A] {

  def toList: List[A] = {
    val buf = new collection.mutable.ListBuffer[A]
    def go(s: Stream[A]): List[A] = s match {
      case Cons(h, t) =>
        buf += h()
        go(t())
      case _ => buf.toList
    }
    go(this)
  }

  def cons[A](hd: => A, tl: => Stream[A]): Stream[A] = Stream.cons(hd, tl)

  def empty = Stream.empty

  def unfold[A, S](z: S)(f: S => Option[(A, S)]): Stream[A] = f(z) …
Run Code Online (Sandbox Code Playgroud)

scala

7
推荐指数
1
解决办法
5395
查看次数

Range.Partial [Double,NumericRange [Double]]隐式转换

我有一个关于隐式转换的问题......

1 to 4: Range[Int] -> Queue[Int] 转换效果很好

1.0 to 4.0 -> Queue[Double]不起作用......

我的代码下面有什么问题?

=========================================

import scala.collection.immutable._

sealed trait XS[A]{
  def print: Unit = this match {
    case RXS(q) => println(q)
    case LXS(msg) => println(msg)
  }
}

case class RXS[A](q: Queue[A]) extends XS[A]
case class LXS[A](msg: String) extends XS[A]

object XS {

  implicit def seqToQueue[A](seq: Seq[A]): Queue[A] = {
    seq.foldRight(Queue[A]())((a, acc) => a +: acc)
  }

  def apply[A](seq: Seq[A]): XS[A] = {
    RXS(seq)
  }
}

object XSTest extends …
Run Code Online (Sandbox Code Playgroud)

scala

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

标签 统计

scala ×2