Lambdas

libretto.lambda.Lambdas
See theLambdas companion object
trait Lambdas[-⚬[_, _], |*|[_, _], Var[_], VarSet, E, LE]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class LambdasImpl[-⚬, |*|, Var, VarSet, E, LE]
class LambdasOne[-⚬, |*|, One, Var, VarSet]

Members list

Concise view

Type members

Classlikes

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object AbstractFun.type
object AbstractFun.type
trait Exprs

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Expr.type
object Expr.type
trait VArrs

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object VArr.type
object VArr.type
object Vars

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Vars.type

Types

type AbstractFun[A, B]
type Abstracted[A, B] = Abstracted[Expr, |*|, AbstractFun, LE, A, B]
type Expr[A]
final type Tupled[F[_], A] = Tupled[|*|, F, A]
type VArr[A, B]
final type Vars[A] = Tupled[Var, A]

Value members

Abstract methods

def abs[A, B](expr: Expr[B], boundVar: Var[A]): Abstracted[A, B]

Concrete methods

def abs[A, B](f: Expr[A] => Expr[B], bindVar: Var[A]): Abstracted[A, B]

Abstract fields

val Expr: Exprs
val VArr: VArrs

Extensions

Extensions

extension [A](a: Expr[A])
def map[B](f: A -⚬ B)(resultVar: Var[B]): Expr[B]
def par[B](b: Expr[B]): Expr[A |*| B]
def zip[B](b: Expr[B])(resultVar: Var[A |*| B]): Expr[A |*| B]
extension [A, B](f: AbstractFun[A, B])
def fold: A -⚬ B
extension [A, B](f: VArr[A, B])
def map[C](g: B -⚬ C)(resultVar: Var[C]): VArr[A, C]
def toExpr: Expr[B]
def zip[A2, B2](g: VArr[A2, B2])(resultVar: Var[B |*| B2]): VArr[A |*| A2, B |*| B2]
extension [A](vars: Vars[A])
def toSet(using variables: Variable[Var, VarSet]): VarSet