From 5fac741171c12d0251e784da9be2f5b15acbb2a5 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sat, 17 Apr 2021 17:03:27 -0400 Subject: initial commit --- challenge-108/adam-russell/blog.txt | 0 challenge-108/adam-russell/perl/ch-1.pl | 0 challenge-108/adam-russell/perl/ch-2.pl | 0 challenge-108/adam-russell/prolog/ch-1.p | 0 challenge-108/adam-russell/prolog/ch-2.p | 0 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 challenge-108/adam-russell/blog.txt create mode 100644 challenge-108/adam-russell/perl/ch-1.pl create mode 100644 challenge-108/adam-russell/perl/ch-2.pl create mode 100644 challenge-108/adam-russell/prolog/ch-1.p create mode 100644 challenge-108/adam-russell/prolog/ch-2.p diff --git a/challenge-108/adam-russell/blog.txt b/challenge-108/adam-russell/blog.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-108/adam-russell/perl/ch-1.pl b/challenge-108/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-108/adam-russell/perl/ch-2.pl b/challenge-108/adam-russell/perl/ch-2.pl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-108/adam-russell/prolog/ch-1.p b/challenge-108/adam-russell/prolog/ch-1.p new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-108/adam-russell/prolog/ch-2.p b/challenge-108/adam-russell/prolog/ch-2.p new file mode 100644 index 0000000000..e69de29bb2 -- cgit From c8d134d9fce7551e65b001dc92914de3e9d42f2a Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 18 Apr 2021 10:05:36 -0400 Subject: perl solutions --- challenge-108/adam-russell/blog.txt | 1 + challenge-108/adam-russell/perl/ch-1.pl | 24 ++++++++++++++++++++++++ challenge-108/adam-russell/perl/ch-2.pl | 23 +++++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/challenge-108/adam-russell/blog.txt b/challenge-108/adam-russell/blog.txt index e69de29bb2..db44c9116e 100644 --- a/challenge-108/adam-russell/blog.txt +++ b/challenge-108/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2021/04/18 diff --git a/challenge-108/adam-russell/perl/ch-1.pl b/challenge-108/adam-russell/perl/ch-1.pl index e69de29bb2..845cf74c19 100644 --- a/challenge-108/adam-russell/perl/ch-1.pl +++ b/challenge-108/adam-russell/perl/ch-1.pl @@ -0,0 +1,24 @@ +use strict; +use warnings; +## +# Write a script to declare a variable or constant and print its location in memory. +## +use Devel::Peek; +use Capture::Tiny q/capture_stderr/; +use constant A => "test"; +my $a = 1; +my $address; +my $stderr = capture_stderr { + Dump(A) +}; +$stderr =~ m/at\s(0x.*\n).*/; +$address = $1; +chomp($address); +print $address . "\n"; +$stderr = capture_stderr { + Dump($a) +}; +$stderr =~ m/at\s(0x.*\n).*/; +$address = $1; +chomp($address); +print $address . "\n"; diff --git a/challenge-108/adam-russell/perl/ch-2.pl b/challenge-108/adam-russell/perl/ch-2.pl index e69de29bb2..f27c3658eb 100644 --- a/challenge-108/adam-russell/perl/ch-2.pl +++ b/challenge-108/adam-russell/perl/ch-2.pl @@ -0,0 +1,23 @@ +use strict; +use warnings; +## +# Write a script to display the first 10 Bell Numbers. +## +sub bell{ + my($n) = @_; + my @bell_numbers = ([]); + $bell_numbers[0]->[0] = 1; + for (my $i=1; $i<=$n; $i++) { + $bell_numbers[$i]->[0] = $bell_numbers[$i-1]->[$i-1]; + for (my $j=1; $j<=$i; $j++){ + $bell_numbers[$i]->[$j] = $bell_numbers[$i-1]->[$j-1] + $bell_numbers[$i]->[$j-1]; + } + } + return $bell_numbers[$n]->[0]; +} + +MINA:{ + for my $b (0 .. 9){ + print "B_$b: " . bell($b) . "\n"; + } +} -- cgit From 039b4a6b38827a8d441196a7abfab0a4a788a242 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 18 Apr 2021 10:06:22 -0400 Subject: Perl solutions and blog.txt --- challenge-108/adam-russell/perl/ch-2.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-108/adam-russell/perl/ch-2.pl b/challenge-108/adam-russell/perl/ch-2.pl index f27c3658eb..0603718b7d 100644 --- a/challenge-108/adam-russell/perl/ch-2.pl +++ b/challenge-108/adam-russell/perl/ch-2.pl @@ -3,7 +3,7 @@ use warnings; ## # Write a script to display the first 10 Bell Numbers. ## -sub bell{ +sub bell_triangle{ my($n) = @_; my @bell_numbers = ([]); $bell_numbers[0]->[0] = 1; @@ -18,6 +18,6 @@ sub bell{ MINA:{ for my $b (0 .. 9){ - print "B_$b: " . bell($b) . "\n"; + print "B_$b: " . bell_triangle($b) . "\n"; } } -- cgit From 920c84164ce468c7fb5e6c7efc208160adcf5404 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 18 Apr 2021 10:20:38 -0400 Subject: Perl solutions to challenge 108. --- challenge-108/adam-russell/perl/ch-1.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-108/adam-russell/perl/ch-1.pl b/challenge-108/adam-russell/perl/ch-1.pl index 845cf74c19..ccf434f002 100644 --- a/challenge-108/adam-russell/perl/ch-1.pl +++ b/challenge-108/adam-russell/perl/ch-1.pl @@ -14,11 +14,11 @@ my $stderr = capture_stderr { $stderr =~ m/at\s(0x.*\n).*/; $address = $1; chomp($address); -print $address . "\n"; +print "Address of constant A: $address\n"; $stderr = capture_stderr { Dump($a) }; $stderr =~ m/at\s(0x.*\n).*/; $address = $1; chomp($address); -print $address . "\n"; +print "Address of \$a: $address\n"; -- cgit From 712a92aab5fa6d393c1b54cc96a04fcb8d6c50c3 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 18 Apr 2021 14:05:19 -0400 Subject: Prolog solution and blog1.txt. --- challenge-108/adam-russell/blog1.txt | 1 + challenge-108/adam-russell/prolog/ch-1.p | 0 challenge-108/adam-russell/prolog/ch-2.p | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 challenge-108/adam-russell/blog1.txt delete mode 100644 challenge-108/adam-russell/prolog/ch-1.p diff --git a/challenge-108/adam-russell/blog1.txt b/challenge-108/adam-russell/blog1.txt new file mode 100644 index 0000000000..d62efd8d9c --- /dev/null +++ b/challenge-108/adam-russell/blog1.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/prolog/2021/04/18 diff --git a/challenge-108/adam-russell/prolog/ch-1.p b/challenge-108/adam-russell/prolog/ch-1.p deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/challenge-108/adam-russell/prolog/ch-2.p b/challenge-108/adam-russell/prolog/ch-2.p index e69de29bb2..fc84bee3fa 100644 --- a/challenge-108/adam-russell/prolog/ch-2.p +++ b/challenge-108/adam-russell/prolog/ch-2.p @@ -0,0 +1,32 @@ +:-initialization(main). + +addElement(Element, [FirstList | OtherLists], [ [Element|FirstList] | OtherLists]). +addElement(Element, [FirstList | OtherLists], [ FirstList | Temp] ):- + addElement(Element, OtherLists, Temp). + +partition([Single], [[Single]]). +partition([First|Others], [[First] | Result]) :- + partition(Others, Result). +partition([First|Others], Result) :- + partition(Others, Temp), + addElement(First, Temp, Result). + +bell_numbers(N):- + \+ N == 0, + N < 10, + length(L0, N), + setof(P, partition(L0, P), Partitions), + length(Partitions, L), + write('B_'), write(N), write(': '), write(L), nl, + N0 is N + 1, + bell_numbers(N0). +bell_numbers(N):- + N == 0, + write('B_'), write(N), write(': '), write(1), nl, + N0 is N + 1, + bell_numbers(N0). +bell_numbers(_). + +main:- + bell_numbers(0), + halt. -- cgit