diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2021-11-22 20:45:20 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2021-11-25 09:53:44 +0200 |
| commit | efa0a2676dccf23195cf0ab68510bfbac720f4a8 (patch) | |
| tree | 9bde55042cd4c240c4ab1142be08bb148ce373fe /src/runtime.rs | |
| parent | bad4b21dbec64c8d1f3bd006a7336f65f720649a (diff) | |
Term generation working seemingly
Diffstat (limited to 'src/runtime.rs')
| -rw-r--r-- | src/runtime.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/runtime.rs b/src/runtime.rs index ca4457e..8f2c0e8 100644 --- a/src/runtime.rs +++ b/src/runtime.rs @@ -214,16 +214,17 @@ pub fn process(program: &ast::Program) { let evaled_expr = process_expr(&symbol_table, expression, &bound_params); let mut abstracted_expr: Rc<Term> = evaled_expr; - // bound_params.iter().rev().for_each(|(_, v)| { - // abstracted_expr = Rc::new(Value::Function(*v, Rc::clone(&abstracted_expr))); - // }); + bound_params.iter().rev().for_each(|(_, v)| { + abstracted_expr = Rc::new(Term::Abstraction(*v, Rc::clone(&abstracted_expr))); + }); symbol_table.insert(symbol.clone(), abstracted_expr); } ast::Statement::Expression(expression) => { println!("[runtime] evaluating free-standing expression"); let term = process_expr(&symbol_table, expression, &vec![]); - println!("Result:\n{}", term); + println!("Term:\n{}", term); + // let value = evaluate_term(&symbol_table, term); } } } |
