From 5a500fb8a7c0ba4b8a59e2622c8cbafdc4ce1fe9 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 8 Jul 2021 19:12:07 +0200 Subject: Range operator --- src/eval/ops.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/eval/ops.rs') diff --git a/src/eval/ops.rs b/src/eval/ops.rs index 2537f4a5..01044842 100644 --- a/src/eval/ops.rs +++ b/src/eval/ops.rs @@ -250,6 +250,14 @@ comparison!(leq, Less | Equal); comparison!(gt, Greater); comparison!(geq, Greater | Equal); +/// Compute the range from `lhs` to `rhs`. +pub fn range(lhs: Value, rhs: Value) -> Value { + match (lhs, rhs) { + (Int(a), Int(b)) => Array((a ..= b).map(Int).collect()), + _ => Error, + } +} + /// Concatenate two collections. fn concat(mut a: T, b: T) -> T where -- cgit v1.2.3