summaryrefslogtreecommitdiff
path: root/rust/src/lambda.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/lambda.rs')
-rw-r--r--rust/src/lambda.rs40
1 files changed, 4 insertions, 36 deletions
diff --git a/rust/src/lambda.rs b/rust/src/lambda.rs
index 18568d7..9633bdd 100644
--- a/rust/src/lambda.rs
+++ b/rust/src/lambda.rs
@@ -8,45 +8,13 @@ use parser::*;
pub fn run(arg: &str) -> String {
let content = read_to_string(arg).unwrap();
- let result = interpret(&content.to_string());
+ let value = parse(&content.to_string());
+ let result = interpret(value);
result.to_string()
}
-fn interpret(arg: &str) -> Value {
+fn interpret(arg: Value) -> Value {
// interpreting a value is the value itself
- parse(arg)
-}
-
-#[cfg(test)]
-mod tests {
- use super::interpret;
- use super::Value::*;
- use proptest::prelude::*;
-
- proptest! {
- #[test]
- fn interpret_integer_as_number(i in -1000i32..1000) {
- let result = interpret(&i.to_string());
- assert_eq!(Num(i), result);
- }
-
- }
-
- #[test]
- fn interpret_truth_values_as_booleans() {
- assert_eq!(Bool(true), interpret("true"));
- assert_eq!(Bool(false), interpret("false"));
- }
-
- #[test]
- fn interpret_identifiers_values_as_symbols() {
- assert_eq!(Sym("foo".to_string()), interpret("foo"));
- }
-
- #[test]
- fn ignores_whitespace() {
- assert_eq!(Sym("foo".to_string()), interpret(" foo \n\r"));
- assert_eq!(Num(-42), interpret("\n-42"));
- }
+ arg
}