final case class StochasticHigherKind[F[_], A](stochastic: Stochastic[A], f: (⇒ A) ⇒ F[A]) extends Stochastic[F[A]] with Product with Serializable
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- StochasticHigherKind
- Serializable
- Serializable
- Product
- Equals
- Stochastic
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new StochasticHigherKind(stochastic: Stochastic[A], f: (⇒ A) ⇒ F[A])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val f: (⇒ A) ⇒ F[A]
-
def
filter(f: (F[A]) ⇒ Boolean): Stochastic[F[A]]
- Definition Classes
- Stochastic
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flatMap[B](f: (F[A]) ⇒ Stochastic[B]): Stochastic[B]
- Definition Classes
- Stochastic
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
map[B](f: (F[A]) ⇒ B): Stochastic[B]
- Definition Classes
- Stochastic
-
def
markov[B >: F[A]](f: (B) ⇒ Stochastic[B]): Stochastic[Stream[B]]
- Definition Classes
- Stochastic
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
repeat[B >: F[A], F[_]](f: (⇒ B) ⇒ F[B]): Stochastic[F[B]]
- Definition Classes
- Stochastic
-
def
sample: F[A]
This repeat feature could have been implemented using "map".
This repeat feature could have been implemented using "map". The only change is replacing
f: A => Bbyf: (=> A) => B. This would have worked:scala> val die = Stochastic.discreteUniform(6).map(_ + 1) die: cardano.Stochastic[Int] = StochasticMap(cardano.distributions.DiscreteDistributions$$anon$1@fc1001b,<function1>) scala> val dice = die.map(Stream.continually[Int]) dice: cardano.Stochastic[scala.collection.immutable.Stream[Int]] = StochasticMap(StochasticMap( cardano.distributions.DiscreteDistributions$$anon$1@fc1001b,<function1>),<function1>) scala> val diePlus5 = die.map(_ + 5) diePlus5: cardano.Stochastic[Int] = StochasticMap(StochasticMap(cardano.distributions.DiscreteDistributions$$anon$1@fc1001b,<function1>),<function1>)
But not:
scala> def f(i: Int) = i + 3 f: (i: Int)Int scala> die.map(f) <console>:17: error: type mismatch; found : Int => Int required: (=> Int) => ? die.map(f)
Since it is not reasonable to ask the user to put
(=> A)in all their signatures for something as basic asmap, it is better to separate the two features- Definition Classes
- StochasticHigherKind → Stochastic
- val stochastic: Stochastic[A]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withFilter(f: (F[A]) ⇒ Boolean): Stochastic[F[A]]
- Definition Classes
- Stochastic