pub enum Expr {
Variable(Identifier),
Symbol(Identifier),
Apply {
lhs: Box<Expr>,
rhs: Box<Expr>,
},
Lambda {
param: Identifier,
body: Box<Expr>,
},
}
Variants§
Implementations§
source§impl Expr
impl Expr
sourcepub fn substitute(&mut self, param: &Identifier, arg: &Expr)
pub fn substitute(&mut self, param: &Identifier, arg: &Expr)
指定した識別子を別の式で置き換えた新しい式を得る
ラムダ抽象の中で束縛されている束縛変数と自由変数の衝突を避けるため 束縛変数のリネームを行うことがある (α変換)
Trait Implementations§
source§impl PartialEq<Expr> for Expr
impl PartialEq<Expr> for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnwindSafe for Expr
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more