From 587d6922f72ebf30daa95f977a899c823b8289fe Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Wed, 8 Jan 2020 08:05:11 +1000 Subject: added ch-2.pl and ch-2.p6 --- challenge-042/ruben-westerberg/perl/ch-2.pl | 26 ++++++++++++++++++++++++++ challenge-042/ruben-westerberg/raku/ch-2.p6 | 17 +++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 challenge-042/ruben-westerberg/perl/ch-2.pl create mode 100755 challenge-042/ruben-westerberg/raku/ch-2.p6 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; + +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-2.p6 b/challenge-042/ruben-westerberg/raku/ch-2.p6 new file mode 100755 index 0000000000..99d2ee83ba --- /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"; +} + + -- cgit From b90f16e25368f3d1632ee8902e44471c0e2e092e Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Wed, 8 Jan 2020 08:15:45 +1000 Subject: Added perl/ch-1.sh and raku/ch-1.sh Updated README --- challenge-042/ruben-westerberg/README | 7 +++---- challenge-042/ruben-westerberg/perl/ch-1.sh | 2 ++ challenge-042/ruben-westerberg/raku/ch-1.sh | 2 ++ challenge-042/ruben-westerberg/raku/ch-2.p6 | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) create mode 100755 challenge-042/ruben-westerberg/perl/ch-1.sh create mode 100755 challenge-042/ruben-westerberg/raku/ch-1.sh 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/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 index 99d2ee83ba..d75b52817d 100755 --- a/challenge-042/ruben-westerberg/raku/ch-2.p6 +++ b/challenge-042/ruben-westerberg/raku/ch-2.p6 @@ -7,7 +7,7 @@ while 1 { my @v= [\+] $str.comb.map({(ord($_)-40)*-2+1}); if @v[*-1]==0 and !@v.grep(* < 0) { - put "balanced $str"; + put "balanced: $str"; sleep 1; next; } -- cgit