LetRecursion

org.finos.morphir.ir.internal.Value.LetRecursion
See theLetRecursion companion object
sealed case class LetRecursion[+TA, +VA](attributes: VA, valueDefinitions: Map[Name, ValueDefinition[TA, VA]], inValue: Value[TA, VA]) extends Value[TA, VA]

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Value[TA, VA]
class Object
trait Matchable
class Any
Show all

Members list

Value members

Inherited methods

Attributes

Inherited from:
Value

Attributes

Inherited from:
Value
def fold[Z](applyCase: (VA, Z, Z) => Z, constructorCase: (VA, FQName) => Z, destructureCase: (VA, Pattern[VA], Z, Z) => Z, fieldCase: (VA, Z, Name) => Z, fieldFunctionCase: (VA, Name) => Z, ifThenElseCase: (VA, Z, Z, Z) => Z, lambdaCase: (VA, Pattern[VA], Z) => Z, letDefinitionCase: (VA, Name, (Chunk[(Name, VA, Type[TA])], Type[TA], Z), Z) => Z, letRecursionCase: (VA, Map[Name, (Chunk[(Name, VA, Type[TA])], Type[TA], Z)], Z) => Z, listCase: (VA, Chunk[Z]) => Z, literalCase: (VA, Lit) => Z, patternMatchCase: (VA, Z, Chunk[(Pattern[VA], Z)]) => Z, recordCase: (VA, Chunk[(Name, Z)]) => Z, referenceCase: (VA, FQName) => Z, tupleCase: (VA, Chunk[Z]) => Z, unitCase: VA => Z, updateRecordCase: (VA, Z, Map[Name, Z]) => Z, variableCase: (VA, Name) => Z): Z

Attributes

Inherited from:
Value
def foldContext[C, TA1 >: TA, VA1 >: VA, Z](context: C)(folder: Folder[C, TA1, VA1, Z]): Z

Attributes

Inherited from:
Value
def foldContextWith[C, Z](context: C)(constructorCase: (C, Value[TA, VA], VA, FQName) => Z, fieldFunctionCase: (C, Value[TA, VA], VA, Name) => Z, literalCase: (C, Value[TA, VA], VA, Lit) => Z, referenceCase: (C, Value[TA, VA], VA, FQName) => Z, unitCase: (C, Value[TA, VA], VA) => Z, variableCase: (C, Value[TA, VA], VA, Name) => Z)(applyCase: (C, Value[TA, VA], VA, Z, Z) => Z, destructureCase: (C, Value[TA, VA], VA, Pattern[VA], Z, Z) => Z, fieldCase: (C, Value[TA, VA], VA, Z, Name) => Z, ifThenElseCase: (C, Value[TA, VA], VA, Z, Z, Z) => Z, lambdaCase: (C, Value[TA, VA], VA, Pattern[VA], Z) => Z, letDefinitionCase: (C, Value[TA, VA], VA, Name, (Chunk[(Name, VA, Type[TA])], Type[TA], Z), Z) => Z, letRecursionCase: (C, Value[TA, VA], VA, Map[Name, (Chunk[(Name, VA, Type[TA])], Type[TA], Z)], Z) => Z, listCase: (C, Value[TA, VA], VA, Chunk[Z]) => Z, patternMatchCase: (C, Value[TA, VA], VA, Z, Chunk[(Pattern[VA], Z)]) => Z, recordCase: (C, Value[TA, VA], VA, Chunk[(Name, Z)]) => Z, tupleCase: (C, Value[TA, VA], VA, Chunk[Z]) => Z, updateRecordCase: (C, Value[TA, VA], VA, Z, Map[Name, Z]) => Z): Z

Attributes

Inherited from:
Value
final def foldLeft[Z](z: Z)(f: PartialFunction[(Z, Value[TA, VA]), Z]): Z

Attributes

Inherited from:
Value
def isData: Boolean

Attributes

Inherited from:
Value
def mapAttributes[TB, VB](f: TA => TB, g: VA => VB): Value[TB, VB]

Attributes

Inherited from:
Value
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product

Attributes

Inherited from:
Value
final override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Value -> Any
Inherited from:
Value
def uncurryApply[TB >: TA, VB >: VA](lastArg: Value[TB, VB]): (Value[TB, VB], List[Value[TB, VB]])

Extract the argument list from a curried apply tree. It takes the two arguments of an apply and returns a tuple of the function and a list of arguments.

Extract the argument list from a curried apply tree. It takes the two arguments of an apply and returns a tuple of the function and a list of arguments.

assert(Apply((), f,a).uncurryApply(b) == (f, List(a, b)))

Attributes

Inherited from:
Value