aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-25 19:51:25 +0100
committerAbigail <abigail@abigail.be>2021-11-25 19:51:25 +0100
commit0c6f22ef70f5f2ce903f7195d8efb2af2ebbe8c4 (patch)
tree216a1cd8bb735038c9b16fd822c35122a7b15eee
parent010d30db79e7468841b5aa8e66f29292cf478ee9 (diff)
downloadperlweeklychallenge-club-0c6f22ef70f5f2ce903f7195d8efb2af2ebbe8c4.tar.gz
perlweeklychallenge-club-0c6f22ef70f5f2ce903f7195d8efb2af2ebbe8c4.tar.bz2
perlweeklychallenge-club-0c6f22ef70f5f2ce903f7195d8efb2af2ebbe8c4.zip
R solution for week 135, part 1
-rw-r--r--challenge-135/abigail/README.md2
-rw-r--r--challenge-135/abigail/r/ch-1.r30
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-135/abigail/README.md b/challenge-135/abigail/README.md
index 6178e463fe..8d165353e3 100644
--- a/challenge-135/abigail/README.md
+++ b/challenge-135/abigail/README.md
@@ -4,6 +4,7 @@
* [AWK](awk/ch-1.awk)
* [Bash](bash/ch-1.sh)
+* [bc](bc/ch-1.bc)
* [C](c/ch-1.c)
* [Go](go/ch-1.go)
* [Java](java/ch-1.java)
@@ -11,6 +12,7 @@
* [Node.js](node/ch-1.js)
* [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)
diff --git a/challenge-135/abigail/r/ch-1.r b/challenge-135/abigail/r/ch-1.r
new file mode 100644
index 0000000000..e16d3210aa
--- /dev/null
+++ b/challenge-135/abigail/r/ch-1.r
@@ -0,0 +1,30 @@
+#
+# See ../README.md
+#
+
+#
+# Run as: Rscript ch-1.r < input-file
+#
+
+stdin <- file ('stdin', 'r')
+repeat {
+ n <- readLines (stdin, n = 1)
+ if (length (n) == 0) {
+ break
+ }
+ n <- sub ("^[-+]", "", n)
+ matches <- grep ("[^0-9]", n)
+ if (length (matches) != 0) {
+ cat ("not an integer\n")
+ next
+ }
+ if (nchar (n) %% 2 == 0) {
+ cat ("even number of digits\n")
+ next
+ }
+ if (nchar (n) < 3) {
+ cat ("too short\n")
+ next
+ }
+ cat (substr (n, 1 + (nchar (n) - 3) / 2, (nchar (n) + 3) / 2), "\n")
+}