Module lambda

Module lambda 

Source
Expand description

The module that defines the basic lambda calculus used to compose expressions in the langauge of thought.

Modules§

types
Defines the basic type system of the lambda calculus

Structs§

LambdaExprRef
An index to a LambdaExpr in the lambda pool.
RootedLambdaPool
A lambda expression with its root defined.

Enums§

FreeVar
A free variable which can either be named or refered to by a integer.
LambdaError
Errors resulting from interacting with a lambda calculus expression.
LambdaExpr
The core expression type of a lambda term
LambdaSummaryStats
Details about a RootedLambdaPool
LambdaTryFromError
A conversion error used when converting to a RootedLambdaPool from a Vec<Option<LambdaExpr>>
ReductionError
An error from a faulty reduction

Traits§

HashLambda
In order to hash a RootedLambdaPool, this trait must be implemented. It allows trees to be hashed without regard for the precise layout of their pools, only the actual tree.
LambdaLanguageOfThought
A trait which allows one to define a language of thought that interacts with the lambda calculus. An example implementation can be found for crate::language::Expr.