class MLRetrieveFunction[A] extends AnyRef
A compiled ML function specifically transmitting values from Isabelle to Scala.
The function is created by val f = MLRetrieveFunction(ml)
where ml
is ML code of type
a -> data
, and a
is the ML type corresponding to A
.
When f(mlVal : MLValue[A])
is invoked in Scala, the compiled ML function ml
is applied to the ML value of type a
referenced by mlVal
in the object store in the Isabelle process.
The result (of ML type data
) is then transferred back to Scala and returned (in a Future).
An MLRetrieveFunction is particularly useful for writing retrieve methods when writing an MLValue.Converter.
The behavior of an MLRetrieveFunction[A]
is very similar to an MLFunction[A,Data]
but more efficient. And the MLRetrieveFunction additionally does not access the
store and retrieve functions of the converter
that is passed as an implicit argument. This is important because we use the MLRetrieveFunction for writing
those functions in the first place.
- Source
- MLValue.scala
- Alphabetic
- By Inheritance
- MLRetrieveFunction
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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
- def apply(value: MLValue[A])(implicit isabelle: Isabelle, ec: ExecutionContext): Future[Data]
Calls the compiled function on the value of ML type
a
referenced byvalue
and returns the result to the Isabelle process (in a Future). - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])