From fcd8dfe826ab67e9c19d65337d6736d9e7da6db4 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 29 Oct 2023 15:07:41 -0400 Subject: initial commit --- challenge-240/adam-russell/blog.txt | 1 + challenge-240/adam-russell/blog1.txt | 1 + challenge-240/adam-russell/perl/ch-1.pl | 17 +++++++++++++++++ challenge-240/adam-russell/perl/ch-2.pl | 16 ++++++++++++++++ challenge-240/adam-russell/prolog/ch-1.p | 6 ++++++ challenge-240/adam-russell/prolog/ch-2.p | 5 +++++ 6 files changed, 46 insertions(+) create mode 100644 challenge-240/adam-russell/blog.txt create mode 100644 challenge-240/adam-russell/blog1.txt create mode 100644 challenge-240/adam-russell/perl/ch-1.pl create mode 100644 challenge-240/adam-russell/perl/ch-2.pl create mode 100644 challenge-240/adam-russell/prolog/ch-1.p create mode 100644 challenge-240/adam-russell/prolog/ch-2.p diff --git a/challenge-240/adam-russell/blog.txt b/challenge-240/adam-russell/blog.txt new file mode 100644 index 0000000000..8c2f165d9c --- /dev/null +++ b/challenge-240/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2023/10/29 \ No newline at end of file diff --git a/challenge-240/adam-russell/blog1.txt b/challenge-240/adam-russell/blog1.txt new file mode 100644 index 0000000000..d7bd8393f3 --- /dev/null +++ b/challenge-240/adam-russell/blog1.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/prolog/2023/10/29 \ No newline at end of file diff --git a/challenge-240/adam-russell/perl/ch-1.pl b/challenge-240/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..99ac6c1e84 --- /dev/null +++ b/challenge-240/adam-russell/perl/ch-1.pl @@ -0,0 +1,17 @@ +use v5.38; +## +# You are given an array of strings and a check string. +# Write a script to find out if the check string is the acronym of the words in the given +# array. +## +use boolean; +sub acronym{ + my($strings, $acronym) = @_; + return boolean(join(q//, map {(split //, lc $_)[0]} @{$strings}) eq lc $acronym); +} + +MAIN:{ + say acronym [qw/Perl Python Pascal/], q/ppp/; + say acronym [qw/Perl Raku/], q/rp/; + say acronym [qw/Oracle Awk C/], q/oac/; +} \ No newline at end of file diff --git a/challenge-240/adam-russell/perl/ch-2.pl b/challenge-240/adam-russell/perl/ch-2.pl new file mode 100644 index 0000000000..1a28504077 --- /dev/null +++ b/challenge-240/adam-russell/perl/ch-2.pl @@ -0,0 +1,16 @@ +use v5.38; +## +# You are given an array of integers. +# Write a script to create an array such that new[i] = old[old[i]] where +# 0 <= i < new.length. +## +sub build_array{ + push @{$_[0]}, $_[$_[@{$_[0]} + 1] + 1]; + return $_[0] if @{$_[0]} == @_ - 1; + goto __SUB__; +} + +MAIN:{ + say join q/, /, @{build_array([], 0, 2, 1, 5, 3, 4)}; + say join q/, /, @{build_array([], 5, 0, 1, 2, 3, 4)}; +} \ No newline at end of file diff --git a/challenge-240/adam-russell/prolog/ch-1.p b/challenge-240/adam-russell/prolog/ch-1.p new file mode 100644 index 0000000000..504811e747 --- /dev/null +++ b/challenge-240/adam-russell/prolog/ch-1.p @@ -0,0 +1,6 @@ +acronym(Strings, CheckString):- + maplist(nth(1), Strings, CheckStringUpperCaseCodes), + maplist(char_code, CheckStringUpperCase, CheckStringUpperCaseCodes), + maplist(lower_upper, CheckStringLowerCase, CheckStringUpperCase), + atom_chars(CheckStringA, CheckStringLowerCase), + atom_codes(CheckStringA, CheckString). \ No newline at end of file diff --git a/challenge-240/adam-russell/prolog/ch-2.p b/challenge-240/adam-russell/prolog/ch-2.p new file mode 100644 index 0000000000..8ec6b08ca7 --- /dev/null +++ b/challenge-240/adam-russell/prolog/ch-2.p @@ -0,0 +1,5 @@ +build_list(_, [], []). +build_list(Old, [OldH|OldT], [NewH|NewT]):- + succ(OldH, I), + nth(I, Old, NewH), + build_list(Old, OldT, NewT). \ No newline at end of file -- cgit