aboutsummaryrefslogtreecommitdiff
path: root/challenge-042
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-01-08 11:11:22 +0000
committerGitHub <noreply@github.com>2020-01-08 11:11:22 +0000
commit8eff148671960ac3baac850e3ac339c60acf3bd3 (patch)
tree91199d4e84b9acc55f836f07613ac24eed29d6bf /challenge-042
parent85da800ba04a2d5c8e3204e548ab3ddae7a773dc (diff)
parentb90f16e25368f3d1632ee8902e44471c0e2e092e (diff)
downloadperlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.tar.gz
perlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.tar.bz2
perlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.zip
Merge pull request #1120 from drclaw1394/master
drclaw/ruben solutions to W42 ch-1 and ch-2. perl and raku
Diffstat (limited to 'challenge-042')
-rw-r--r--challenge-042/ruben-westerberg/README7
-rwxr-xr-xchallenge-042/ruben-westerberg/perl/ch-1.sh2
-rwxr-xr-xchallenge-042/ruben-westerberg/perl/ch-2.pl26
-rwxr-xr-xchallenge-042/ruben-westerberg/raku/ch-1.sh2
-rwxr-xr-xchallenge-042/ruben-westerberg/raku/ch-2.p617
5 files changed, 50 insertions, 4 deletions
diff --git a/challenge-042/ruben-westerberg/README b/challenge-042/ruben-westerberg/README
index 739bcf2117..860958cfb7 100644
--- a/challenge-042/ruben-westerberg/README
+++ b/challenge-042/ruben-westerberg/README
@@ -1,13 +1,12 @@
Solution by Ruben Westerberg
-ch-1.pl and ch-1.p6
+perl/ch-1.sh and raku/ch-1.sh
===================
-Run program to show 'attractive numbers' between 1 and 50
+Run the shell script perl one liner to display octal number from 0 to 50
ch-2.pl and ch-2.p6
===================
-Run program to display the first 20 Leonardo Numbers
-
+Run the script to generate a random string of '(' and ')' and test if the resulting string has blanaced pairs. An optional argument of the max length of the string can be supplied. Otherwise a max length of 20 characters is used.
diff --git a/challenge-042/ruben-westerberg/perl/ch-1.sh b/challenge-042/ruben-westerberg/perl/ch-1.sh
new file mode 100755
index 0000000000..81ff2c2b60
--- /dev/null
+++ b/challenge-042/ruben-westerberg/perl/ch-1.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+perl -e 'printf "Decimal: %4d Octal: %4o\n",$_,$_ for 0..50';
diff --git a/challenge-042/ruben-westerberg/perl/ch-2.pl b/challenge-042/ruben-westerberg/perl/ch-2.pl
new file mode 100755
index 0000000000..b72c777c89
--- /dev/null
+++ b/challenge-042/ruben-westerberg/perl/ch-2.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use POSIX qw<round>;
+
+my $maxLength=$ARGV[0]//20; #If no max on command line use 20
+while () {
+ my $str="";
+ #make a random length string of up to $maxLength long
+ $str.=chr round rand()+40 for 0..int rand $maxLength;
+
+ my $v=0;
+ for (split "",$str) {
+ $v+=(ord($_)-40)*-2+1;
+ last unless $v >=0;
+ }
+
+ if($v==0) {
+ print("balanced: $str\n");
+ sleep 1;
+ next;
+ }
+ print("unbalanced: $str\n");
+}
+
+
diff --git a/challenge-042/ruben-westerberg/raku/ch-1.sh b/challenge-042/ruben-westerberg/raku/ch-1.sh
new file mode 100755
index 0000000000..828a928e50
--- /dev/null
+++ b/challenge-042/ruben-westerberg/raku/ch-1.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+perl6 -e 'printf "Decimal: %4d Octal: %4o\n",$_,$_ for 0..50';
diff --git a/challenge-042/ruben-westerberg/raku/ch-2.p6 b/challenge-042/ruben-westerberg/raku/ch-2.p6
new file mode 100755
index 0000000000..d75b52817d
--- /dev/null
+++ b/challenge-042/ruben-westerberg/raku/ch-2.p6
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl6
+my $maxLength=@*ARGS[0]//20; #If no max on command line use 20
+while 1 {
+ my $str="";
+ #make a random length string of upto $maxLength long
+ $str~=(1.rand()+40).round.chr for 0..$maxLength.rand.Int;
+ my @v= [\+] $str.comb.map({(ord($_)-40)*-2+1});
+
+ if @v[*-1]==0 and !@v.grep(* < 0) {
+ put "balanced: $str";
+ sleep 1;
+ next;
+ }
+ say "unbalanced: $str";
+}
+
+