aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-002/abigail/README.md13
-rw-r--r--challenge-002/abigail/awk/ch-1.awk10
-rw-r--r--challenge-002/abigail/awk/ch-2.awk3
-rw-r--r--challenge-002/abigail/bash/ch-1.sh2
-rw-r--r--challenge-002/abigail/bash/ch-2.sh60
-rw-r--r--challenge-002/abigail/bc/ch-1.bc9
-rw-r--r--challenge-002/abigail/c/ch-1.c2
-rw-r--r--challenge-002/abigail/c/ch-2.c2
-rw-r--r--challenge-002/abigail/go/ch-1.go24
-rw-r--r--challenge-002/abigail/go/ch-2.go46
-rw-r--r--challenge-002/abigail/java/ch-1.java18
-rw-r--r--challenge-002/abigail/java/ch-2.java38
-rw-r--r--challenge-002/abigail/lua/ch-1.lua2
-rw-r--r--challenge-002/abigail/lua/ch-2.lua2
-rw-r--r--challenge-002/abigail/node/ch-1.js2
-rw-r--r--challenge-002/abigail/node/ch-2.js2
-rw-r--r--challenge-002/abigail/pascal/ch-1.p19
-rw-r--r--challenge-002/abigail/pascal/ch-2.p38
-rw-r--r--challenge-002/abigail/perl/ch-1.pl2
-rw-r--r--challenge-002/abigail/perl/ch-2.pl2
-rw-r--r--challenge-002/abigail/python/ch-1.py6
-rw-r--r--challenge-002/abigail/python/ch-2.py10
-rw-r--r--challenge-002/abigail/r/ch-1.r19
-rw-r--r--challenge-002/abigail/r/ch-2.r47
-rw-r--r--challenge-002/abigail/ruby/ch-1.rb2
-rw-r--r--challenge-002/abigail/ruby/ch-2.rb2
-rw-r--r--challenge-002/abigail/scheme/ch-1.scm22
-rw-r--r--challenge-002/abigail/scheme/ch-2.scm56
-rw-r--r--challenge-002/abigail/tcl/ch-1.tcl17
-rw-r--r--challenge-002/abigail/tcl/ch-2.tcl56
-rw-r--r--challenge-003/abigail/README.md45
-rw-r--r--challenge-003/abigail/awk/ch-1.awk44
-rw-r--r--challenge-003/abigail/awk/ch-2.awk2
-rw-r--r--challenge-003/abigail/bash/ch-1.sh32
-rw-r--r--challenge-003/abigail/bash/ch-2.sh26
-rw-r--r--challenge-003/abigail/bc/ch-1.bc39
-rw-r--r--challenge-003/abigail/bc/ch-2.bc35
-rw-r--r--challenge-003/abigail/c/ch-1.c48
-rw-r--r--challenge-003/abigail/c/ch-2.c2
-rw-r--r--challenge-003/abigail/go/ch-1.go47
-rw-r--r--challenge-003/abigail/go/ch-2.go40
-rw-r--r--challenge-003/abigail/java/ch-1.java46
-rw-r--r--challenge-003/abigail/java/ch-2.java34
-rw-r--r--challenge-003/abigail/lua/ch-1.lua54
-rw-r--r--challenge-003/abigail/lua/ch-2.lua2
-rw-r--r--challenge-003/abigail/node/ch-1.js29
-rw-r--r--challenge-003/abigail/node/ch-2.js2
-rw-r--r--challenge-003/abigail/pascal/ch-1.p48
-rw-r--r--challenge-003/abigail/pascal/ch-2.p36
-rw-r--r--challenge-003/abigail/perl/ch-1.pl55
-rw-r--r--challenge-003/abigail/perl/ch-2.pl2
-rw-r--r--challenge-003/abigail/python/ch-1.py40
-rw-r--r--challenge-003/abigail/python/ch-2.py4
-rw-r--r--challenge-003/abigail/r/ch-1.r33
-rw-r--r--challenge-003/abigail/r/ch-2.r24
-rw-r--r--challenge-003/abigail/ruby/ch-1.rb35
-rw-r--r--challenge-003/abigail/ruby/ch-2.rb2
-rw-r--r--challenge-003/abigail/scheme/ch-1.scm43
-rw-r--r--challenge-003/abigail/scheme/ch-2.scm50
-rw-r--r--challenge-003/abigail/t/ctest.ini9
-rw-r--r--challenge-003/abigail/t/input-1-13
-rw-r--r--challenge-003/abigail/t/input-1-25
-rw-r--r--challenge-003/abigail/t/output-1-1.exp60
-rw-r--r--challenge-003/abigail/t/output-1-2.exp313
-rw-r--r--challenge-003/abigail/tcl/ch-1.tcl37
-rw-r--r--challenge-003/abigail/tcl/ch-2.tcl27
-rw-r--r--challenge-123/abigail/README.md6
-rw-r--r--challenge-123/abigail/bc/ch-1.bc35
-rw-r--r--challenge-123/abigail/go/ch-1.go47
-rw-r--r--challenge-123/abigail/java/ch-1.java46
-rw-r--r--challenge-123/abigail/pascal/ch-1.p48
-rw-r--r--challenge-123/abigail/scheme/ch-1.scm43
-rw-r--r--challenge-123/abigail/tcl/ch-1.tcl37
-rw-r--r--challenge-145/e-choroba/blog.txt1
-rwxr-xr-xchallenge-145/e-choroba/perl/ch-2.pl14
-rw-r--r--challenge-146/arne-sommer/blog.txt1
-rw-r--r--challenge-146/arne-sommer/misc/cft.dot16
-rwxr-xr-xchallenge-146/arne-sommer/perl/10001st-perl22
-rwxr-xr-xchallenge-146/arne-sommer/perl/cft-perl28
-rwxr-xr-xchallenge-146/arne-sommer/perl/ch-1.pl22
-rwxr-xr-xchallenge-146/arne-sommer/perl/ch-2.pl28
-rwxr-xr-xchallenge-146/arne-sommer/raku/10001st7
-rwxr-xr-xchallenge-146/arne-sommer/raku/cft21
-rwxr-xr-xchallenge-146/arne-sommer/raku/cft-hash26
-rwxr-xr-xchallenge-146/arne-sommer/raku/ch-1.raku7
-rwxr-xr-xchallenge-146/arne-sommer/raku/ch-2.raku21
-rwxr-xr-xchallenge-146/arne-sommer/raku/mkcft40
-rw-r--r--challenge-146/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-146/laurent-rosenfeld/julia/ch-2.jl11
-rw-r--r--challenge-146/laurent-rosenfeld/perl/ch-1.pl26
-rw-r--r--challenge-146/laurent-rosenfeld/perl/ch-2.pl19
-rw-r--r--challenge-146/laurent-rosenfeld/python/ch-2.py10
-rw-r--r--challenge-146/laurent-rosenfeld/raku/ch-1.raku4
-rw-r--r--challenge-146/laurent-rosenfeld/raku/ch-2.raku12
-rw-r--r--challenge-146/laurent-rosenfeld/ring/ch-1.ring24
-rw-r--r--challenge-146/laurent-rosenfeld/ring/ch-2.ring21
-rw-r--r--challenge-146/mohammad-anwar/java/theweeklychallenge/FindPrime.java55
-rw-r--r--challenge-146/mohammad-anwar/python/ch-1.py50
-rw-r--r--challenge-146/mohammad-anwar/swift/ch-1.swift69
-rwxr-xr-xchallenge-146/perlboy1967/perl/ch-1.pl27
-rwxr-xr-xchallenge-146/perlboy1967/perl/ch-2.pl46
-rw-r--r--challenge-146/robert-dicicco/perl/ch-2.pl45
-rw-r--r--stats/pwc-challenge-145.json562
-rw-r--r--stats/pwc-current.json387
-rw-r--r--stats/pwc-language-breakdown-summary.json82
-rw-r--r--stats/pwc-language-breakdown.json2060
-rw-r--r--stats/pwc-leaders.json738
-rw-r--r--stats/pwc-summary-1-30.json126
-rw-r--r--stats/pwc-summary-121-150.json52
-rw-r--r--stats/pwc-summary-151-180.json52
-rw-r--r--stats/pwc-summary-181-210.json114
-rw-r--r--stats/pwc-summary-211-240.json96
-rw-r--r--stats/pwc-summary-241-270.json72
-rw-r--r--stats/pwc-summary-31-60.json32
-rw-r--r--stats/pwc-summary-61-90.json98
-rw-r--r--stats/pwc-summary-91-120.json56
-rw-r--r--stats/pwc-summary.json542
117 files changed, 4827 insertions, 3064 deletions
diff --git a/challenge-002/abigail/README.md b/challenge-002/abigail/README.md
index bb5cb18c8f..83ac952703 100644
--- a/challenge-002/abigail/README.md
+++ b/challenge-002/abigail/README.md
@@ -16,11 +16,17 @@ We cannot have a number with just 0's, as that would not be a positive number.
* [bc](bc/ch-1.bc)
* [Befunge-93](befunge-93/ch-1.bf93)
* [C](c/ch-1.c)
+* [Go](go/ch-1.go)
+* [Java](java/ch-1.java)
* [Lua](lua/ch-1.lua)
* [Node.js](node/ch-1.js)
+* [Pascal](pascal/ch-1.p)
* [Perl](perl/ch-1.pl)
* [Python](python/ch-1.py)
+* [R](r/ch-1.r)
* [Ruby](ruby/ch-1.rb)
+* [Scheme](scheme/ch-1.scm)
+* [Tcl](tcl/ch-1.tcl)
## [Challenge #2](https://perlweeklychallenge.org/blog/perl-weekly-challenge-002/#challenge-2)
@@ -37,9 +43,16 @@ one number per line. Programs will use an option, -t (to base 35), or
### Solutions
* [AWK](awk/ch-2.awk)
+* [Bash](bash/ch-2.sh)
* [C](c/ch-2.c)
+* [Go](go/ch-1.go)
+* [Java](java/ch-1.java)
* [Lua](lua/ch-2.lua)
* [Node](node/ch-2.js)
+* [Pascal](pascal/ch-1.p)
* [Perl](perl/ch-2.pl)
* [Python](python/ch-2.py)
+* [R](r/ch-2.r)
* [Ruby](ruby/ch-2.by)
+* [Scheme](scheme/ch-2.scm)
+* [Tcl](tcl/ch-2.tcl)
diff --git a/challenge-002/abigail/awk/ch-1.awk b/challenge-002/abigail/awk/ch-1.awk
index 6f2ef2064c..b40b9b0616 100644
--- a/challenge-002/abigail/awk/ch-1.awk
+++ b/challenge-002/abigail/awk/ch-1.awk
@@ -1 +1,11 @@
+#!/usr/bin/awk
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-002
+#
+
+#
+# Run as: awk -f ch-1.awk < input-file
+#
+
{print 0 + $1}
diff --git a/challenge-002/abigail/awk/ch-2.awk b/challenge-002/abigail/awk/ch-2.awk
index b171fcd08f..77148f99c7 100644
--- a/challenge-002/abigail/awk/ch-2.awk
+++ b/challenge-002/abigail/awk/ch-2.awk
@@ -1,6 +1,7 @@
#!/usr/bin/awk
+
#
-# See ../README.md
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-002
#
#
diff --git a/challenge-002/abigail/bash/ch-1.sh b/challenge-002/abigail/bash/ch-1.sh
index b860cc4aa6..593a174ff3 100644
--- a/challenge-002/abigail/bash/ch-1.sh
+++ b/challenge-002/abigail/bash/ch-1.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# See ../README.md
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-002
#
#
diff --git a/challenge-002/abigail/bash/ch-2.sh b/challenge-002/abigail/bash/ch-2.sh
new file mode 100644
index 0000000000..006c46a8d6
--- /dev/null
+++ b/challenge-002/abigail/bash/ch-2.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-002
+#
+
+#
+# Run as: bash ch-2.sh < input-file
+#
+
+set -f
+
+printf -v ord_0 %d "'0"
+printf -v ord_A %d "'A"
+
+while getopts "ft" opt
+do case "${opt}" in
+ f) action=from ;;
+ t) action=to ;;
+ esac
+done
+
+function from_base_35 () {
+ local in=$1
+ local ord
+ local char
+ base_10=0
+
+ for ((i = 0; i < ${#in}; i ++))
+ do ((base_10 = 35 * base_10))
+ char=${in:$i:1}
+ printf -v ord %d "'$char"
+ if [[ $char =~ [0-9] ]]
+ then ((base_10 = base_10 + ord - ord_0))
+ else ((base_10 = base_10 + ord - ord_A + 10))
+ fi
+ done
+}
+
+function to_base_35 () {
+ local in=$1
+ base_35=""
+
+ while ((in > 0))
+ do ((rem = in % 35))
+ ((in = in / 35))
+ if ((rem > 9))
+ then printf -v char "\x$(printf %x $((ord_A + rem - 10)))"
+ else char=$rem
+ fi
+ base_35=${char}${base_35}
+ done
+}
+