From 0ee1aa16910673786619a73d6b1e7dcd56cae914 Mon Sep 17 00:00:00 2001 From: mattwparas <matthewparas2020@u.northwestern.edu> Date: Mon, 4 Dec 2023 12:00:35 -0800 Subject: [PATCH] fix filter condition to only exclude false --- cogs/r5rs.scm | 2 ++ crates/steel-core/src/steel_vm/transducers.rs | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cogs/r5rs.scm b/cogs/r5rs.scm index a017e0bed..7d045412f 100644 --- a/cogs/r5rs.scm +++ b/cogs/r5rs.scm @@ -41,6 +41,8 @@ (check-equal? "Parsing octal" #o0777 511) (check-equal? "Parsing binary" #b0110 6) +(check-equal? "filter treats lists as true" (filter (lambda (n) (list 1 2)) (list 1 2)) '(1 2)) + (check-equal? "Symbols are interned correctly - lists should use the existing symbols that have been interned" (eq? 'definitely-hasnt-been-seen-before diff --git a/crates/steel-core/src/steel_vm/transducers.rs b/crates/steel-core/src/steel_vm/transducers.rs index 22a40ab06..0846f8236 100644 --- a/crates/steel-core/src/steel_vm/transducers.rs +++ b/crates/steel-core/src/steel_vm/transducers.rs @@ -267,9 +267,8 @@ impl<'global, 'a> VmCore<'a> { match res { Ok(k) => match k { - SteelVal::BoolV(true) => Some(Ok(arg)), SteelVal::BoolV(false) => None, - _ => None, + _ => Some(Ok(arg)), }, Err(e) => Some(Err(e)), }