From 855f4fef5f86e7ee9ac76f2f864e01365dee91c5 Mon Sep 17 00:00:00 2001 From: MadMaurice Date: Fri, 2 Apr 2021 03:08:19 +0200 Subject: [PATCH] Add string comparison functions --- lib/Minilisp.pm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/Minilisp.pm b/lib/Minilisp.pm index 54be7c6..da7134d 100644 --- a/lib/Minilisp.pm +++ b/lib/Minilisp.pm @@ -109,6 +109,18 @@ my %stdctx = ( 'ne' => sub { my ($a, $b) = @_; return ($a ne $b); }, '==' => sub { my ($a, $b) = @_; return ($a == $b); }, '!=' => sub { my ($a, $b) = @_; return ($a != $b); }, + 'string=' => sub { my ($a, $b) = @_; return ($a eq $b); }, + 'string/=' => sub { my ($a, $b) = @_; return ($a ne $b); }, + 'string<' => sub { my ($a, $b) = @_; return ($a lt $b); }, + 'string>' => sub { my ($a, $b) = @_; return ($a gt $b); }, + 'string<=' => sub { my ($a, $b) = @_; return !($a gt $b); }, + 'string>=' => sub { my ($a, $b) = @_; return !($a lt $b); }, + 'string-equal' => sub { my ($a, $b) = @_; return ( lc($a) eq lc($b)); }, + 'string-not-equal' => sub { my ($a, $b) = @_; return (lc($a) ne lc($b)); }, + 'string-lessp' => sub { my ($a, $b) = @_; return (lc($a) lt lc($b)); }, + 'string-greaterp' => sub { my ($a, $b) = @_; return (lc($a) gt lc($b)); }, + 'string-not-greaterp' => sub { my ($a, $b) = @_; return !(lc($a) gt lc($b)); }, + 'string-not-lessp' => sub { my ($a, $b) = @_; return !(lc($a) lt lc($b)); }, '>' => sub { my ($a,$b) = @_; return ($a > $b); }, '<' => sub { my ($a,$b) = @_; return ($a < $b); }, '>=' => sub { my ($a,$b) = @_; return ($a >= $b); },