Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/dcreager/expression-problem-rust
/ functions
Functions
96 in github.com/dcreager/expression-problem-rust
⨍
Functions
96
◇
Types & classes
32
↓ 84 callers
Function
integer_literal
(value: i64)
src/old.rs:26
↓ 25 callers
Function
add
(lhs: E, rhs: E)
src/old.rs:35
↓ 9 callers
Function
pair
(first: E, second: E)
src/ch07a_pairs.rs:39
↓ 8 callers
Function
integer_literal
(value: i64)
src/ch01a_before.rs:45
↓ 7 callers
Function
subtract
(lhs: Expression, rhs: Expression)
src/ch01a_before.rs:53
↓ 6 callers
Function
first
(pair: E)
src/ch07a_pairs.rs:43
↓ 6 callers
Function
multiply
And a smart constructor
src/ch05a_multiplication.rs:39
↓ 5 callers
Function
integer_literal
(value: i64)
src/ch04_smart_constructors.rs:67
↓ 3 callers
Function
add
(lhs: E, rhs: E)
src/ch04_smart_constructors.rs:71
↓ 2 callers
Function
add
(lhs: Expression, rhs: Expression)
src/ch01a_before.rs:49
↓ 2 callers
Method
evaluate
(&self)
src/ch07c_pair_evaluation.rs:30
↓ 2 callers
Method
first
(self)
src/ch07c_pair_evaluation.rs:105
↓ 2 callers
Function
negate
(nested: Expression)
src/ch01c_sad_face.rs:58
↓ 2 callers
Method
recall
(&self)
src/ch06_calculator_monad.rs:43
↓ 2 callers
Method
second
(self)
src/ch07c_pair_evaluation.rs:112
↓ 1 callers
Method
eval
(&self, _eval_subexpr: F)
src/ch08b_open_recursion_evaluation.rs:71
↓ 1 callers
Method
evaluate
(&self)
src/ch07b_generic_evaluation.rs:45
↓ 1 callers
Method
increment
(&mut self, delta: i64)
src/ch06_calculator_monad.rs:37
↓ 1 callers
Function
tick
The tick function from the paper needs both operations, and Rust's trait bounds already give us a great language for expressing that constraint.
src/ch06_calculator_monad.rs:50
↓ 1 callers
Method
unwrap
(&self)
src/ch08a_expressions.rs:42
Method
add
(self, other: Self)
src/ch07d_safer_pair_evaluation.rs:39
Method
add
(self, other: Self)
src/ch07c_pair_evaluation.rs:88
Function
can_create_pair_expressions
()
src/ch07a_pairs.rs:78
Function
can_evaluate_add
()
src/old.rs:177
Function
can_evaluate_add
()
src/ch01b_new_method.rs:45
Function
can_evaluate_add
()
src/ch01a_before.rs:70
Function
can_evaluate_add
()
src/ch01c_sad_face.rs:75
Function
can_evaluate_expr_add
()
src/old.rs:211
Function
can_evaluate_expr_add3
()
src/old.rs:217
Function
can_evaluate_expr_integer_literal
()
src/old.rs:205
Function
can_evaluate_integer_literal
()
src/old.rs:171
Function
can_evaluate_integer_literal
()
src/ch01b_new_method.rs:39
Function
can_evaluate_integer_literal
()
src/ch01a_before.rs:62
Function
can_evaluate_integer_literal
()
src/ch01c_sad_face.rs:69
Function
can_evaluate_multiplication
()
src/ch05a_multiplication.rs:87
Function
can_evaluate_multiplication
()
src/ch08b_open_recursion_evaluation.rs:233
Function
can_evaluate_negate
()
src/ch01c_sad_face.rs:98
Function
can_evaluate_nested
()
src/ch01b_new_method.rs:57
Function
can_evaluate_nested
()
src/ch01a_before.rs:82
Function
can_evaluate_nested
()
src/ch01c_sad_face.rs:87
Function
can_evaluate_nested_expression
()
src/ch07b_generic_evaluation.rs:105
Function
can_evaluate_nested_expression
()
src/ch07d_safer_pair_evaluation.rs:103
Function
can_evaluate_nested_expression
()
src/ch07c_pair_evaluation.rs:143
Function
can_evaluate_nested_expression
()
src/ch04_smart_constructors.rs:89
Function
can_evaluate_nested_expression
()
src/ch08b_open_recursion_evaluation.rs:223
Function
can_evaluate_nested_negate
()
src/ch01c_sad_face.rs:104
Function
can_evaluate_no_add_multiplication
()
src/ch05a_multiplication.rs:96
Function
can_evaluate_no_add_multiplication
()
src/ch05b_display.rs:105
Function
can_evaluate_no_add_multiplication
()
src/ch08b_open_recursion_evaluation.rs:242
Function
can_evaluate_pair
()
src/ch07d_safer_pair_evaluation.rs:120
Function
can_evaluate_pair
()
src/ch07c_pair_evaluation.rs:159
Function
can_evaluate_pair
()
src/ch08b_open_recursion_evaluation.rs:248
Function
can_evaluate_pair_projection
()
src/ch07d_safer_pair_evaluation.rs:141
Function
can_evaluate_pair_projection
()
src/ch07c_pair_evaluation.rs:172
Function
can_evaluate_pair_projection
()
src/ch08b_open_recursion_evaluation.rs:257
Function
can_evaluate_subtract
()
src/ch01b_new_method.rs:51
Function
can_evaluate_subtract
()
src/ch01a_before.rs:76
Function
can_evaluate_subtract
()
src/ch01c_sad_face.rs:81
Function
can_evaluate_ugly_expression
()
src/ch07b_generic_evaluation.rs:95
Function
can_evaluate_ugly_expression
()
src/ch03_evaluation.rs:77
Function
can_evaluate_ugly_expression
()
src/ch07d_safer_pair_evaluation.rs:87
Function
can_evaluate_ugly_expression
()
src/ch07c_pair_evaluation.rs:130
Function
can_evaluate_ugly_expression
()
src/ch04_smart_constructors.rs:81
Function
can_evaluate_ugly_expression
()
src/ch08b_open_recursion_evaluation.rs:217
Function
can_instantiate_ugly_expression
()
src/ch02_open_sum.rs:58
Function
can_render_multiplication
()
src/ch05b_display.rs:96
Function
can_render_ugly_expression
()
src/ch05b_display.rs:90
Function
can_run_get
()
src/ch06_calculator_monad.rs:81
Function
can_run_tick
()
src/ch06_calculator_monad.rs:73
Function
cannot_add_pairs
()
src/ch07d_safer_pair_evaluation.rs:166
Function
cannot_add_pairs
()
src/ch07c_pair_evaluation.rs:191
Function
cannot_project_integer
()
src/ch07d_safer_pair_evaluation.rs:156
Function
cannot_project_integer
()
src/ch07c_pair_evaluation.rs:184
Method
evaluate
(&self)
src/old.rs:96
Method
evaluate
(&self)
src/ch05a_multiplication.rs:33
Method
evaluate
(&self)
src/ch03_evaluation.rs:31
Method
evaluate
(&self)
src/ch08b_open_recursion_evaluation.rs:200
Method
evaluate
(&self)
src/ch01a_before.rs:33
Method
evaluate
(&self)
src/ch01c_sad_face.rs:43
Function
evaluate_any
This helper function will make things easier for us when we try to call our evaluate trait method. (We'll have to explicitly call out which value typ
src/ch07b_generic_evaluation.rs:32
Method
first
(self)
src/ch07d_safer_pair_evaluation.rs:61
Method
fmt
(&self, f: &mut fmt::Formatter)
src/ch01b_new_method.rs:25
Method
fmt
(&self, f: &mut fmt::Formatter)
src/ch05b_display.rs:26
Method
from
(left: L)
src/old.rs:60
Method
from
(x: X)
src/ch05a_multiplication.rs:57
Method
from
(value: Option<IntOrPair>)
src/ch07d_safer_pair_evaluation.rs:26
Method
from
(value: i64)
src/ch07c_pair_evaluation.rs:81
Method
from
(left: L)
src/ch04_smart_constructors.rs:39
Method
from
(x: X)
src/ch07a_pairs.rs:67
Method
from
(wrapped: ch01a_before::Expression)
src/ch01c_sad_face.rs:35
Function
get
This function (which doesn't appear in the paper) only needs the Recall operation, and as such, works with a non-mutable reference to the store.
src/ch06_calculator_monad.rs:61
Method
new_left
(left: L)
src/old.rs:51
Method
new_right
(right: R)
src/old.rs:54
Function
second
(pair: E)
src/ch07a_pairs.rs:47
Method
second
(self)
src/ch07d_safer_pair_evaluation.rs:68
Method
wrap
(sig: Self::Signature)
src/ch08a_expressions.rs:39