aboutsummaryrefslogtreecommitdiff
path: root/challenge-004
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-09 21:54:05 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-09 21:54:05 +0100
commit395f87e5947194f9cd61a8e48fb04fd30bfc14d7 (patch)
tree9e992a237382883bb6fc27931465e48ccb72ea22 /challenge-004
parent09692c13e2440d4d595ff782690e99bdf9c01d5e (diff)
downloadperlweeklychallenge-club-395f87e5947194f9cd61a8e48fb04fd30bfc14d7.tar.gz
perlweeklychallenge-club-395f87e5947194f9cd61a8e48fb04fd30bfc14d7.tar.bz2
perlweeklychallenge-club-395f87e5947194f9cd61a8e48fb04fd30bfc14d7.zip
Week 4, part 1: All languages should give the same result.
Make we all languages have the same rounding issues.
Diffstat (limited to 'challenge-004')
-rw-r--r--challenge-004/abigail/README.md1
-rw-r--r--challenge-004/abigail/awk/ch-1.awk2
-rw-r--r--challenge-004/abigail/bash/ch-1.sh2
-rw-r--r--challenge-004/abigail/c/ch-1.c2
-rw-r--r--challenge-004/abigail/go/ch-1.go2
-rw-r--r--challenge-004/abigail/java/ch-1.java2
-rw-r--r--challenge-004/abigail/lua/ch-1.lua2
-rw-r--r--challenge-004/abigail/node/ch-1.js2
-rw-r--r--challenge-004/abigail/pascal/ch-1.p2
-rw-r--r--challenge-004/abigail/perl/ch-1.pl2
-rw-r--r--challenge-004/abigail/python/ch-1.py2
-rw-r--r--challenge-004/abigail/r/ch-1.r2
-rw-r--r--challenge-004/abigail/ruby/ch-1.rb2
-rw-r--r--challenge-004/abigail/scheme/ch-1.scm2
-rw-r--r--challenge-004/abigail/t/ctest.ini8
-rw-r--r--challenge-004/abigail/t/input-1-20
-rw-r--r--challenge-004/abigail/t/output-1-1.exp2
-rw-r--r--challenge-004/abigail/t/output-1-2.exp1
-rw-r--r--challenge-004/abigail/tcl/ch-1.tcl2
19 files changed, 16 insertions, 24 deletions
diff --git a/challenge-004/abigail/README.md b/challenge-004/abigail/README.md
index 70c4238767..8cfd5b4918 100644
--- a/challenge-004/abigail/README.md
+++ b/challenge-004/abigail/README.md
@@ -34,6 +34,7 @@ and printing. We may even need to filler comments to make it all work out.
* [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-004/abigail/awk/ch-1.awk b/challenge-004/abigail/awk/ch-1.awk
index ef3e23fbf5..36fec0b98f 100644
--- a/challenge-004/abigail/awk/ch-1.awk
+++ b/challenge-004/abigail/awk/ch-1.awk
@@ -48,7 +48,7 @@ BEGIN {
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" \
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" \
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" \
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB"
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?"
printf ("3.")
format = "%0" out_size "d"
for (i = 1; i <= length (line); i += in_size) {
diff --git a/challenge-004/abigail/bash/ch-1.sh b/challenge-004/abigail/bash/ch-1.sh
index 090463de8e..6dfa72a723 100644
--- a/challenge-004/abigail/bash/ch-1.sh
+++ b/challenge-004/abigail/bash/ch-1.sh
@@ -61,7 +61,7 @@ $K`U.%bSL*&dG^f,lN@.+jGbU.g8,s&FwUP$9p3S/)f(4,y><Y0vnKH(:}m~
'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S
)-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-
+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH
-%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB
+%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?
--
echo
diff --git a/challenge-004/abigail/c/ch-1.c b/challenge-004/abigail/c/ch-1.c
index a4bd327725..89ee6b0e96 100644
--- a/challenge-004/abigail/c/ch-1.c
+++ b/challenge-004/abigail/c/ch-1.c
@@ -48,7 +48,7 @@ int main (void) {
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" \
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" \
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" \
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB";
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?";
printf ("3.");
size_t l = strlen (pi);
for (size_t i = 0; i < l; i += in_size) {
diff --git a/challenge-004/abigail/go/ch-1.go b/challenge-004/abigail/go/ch-1.go
index 134f8f2c6b..757181e876 100644
--- a/challenge-004/abigail/go/ch-1.go
+++ b/challenge-004/abigail/go/ch-1.go
@@ -48,7 +48,7 @@ func main () {
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" +
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" +
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" +
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB")
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?")
fmt . Print ("3.")
for i := 0; i < len (pi); i += in_size {
out := 0
diff --git a/challenge-004/abigail/java/ch-1.java b/challenge-004/abigail/java/ch-1.java
index 80322e375c..c93f31fb28 100644
--- a/challenge-004/abigail/java/ch-1.java
+++ b/challenge-004/abigail/java/ch-1.java
@@ -45,7 +45,7 @@ public class ch1 {
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" +
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" +
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" +
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB") .
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?") .
toCharArray ();
System . out . print ("3.");
for (int i = 0; i < pi . length; i += in_size) {
diff --git a/challenge-004/abigail/lua/ch-1.lua b/challenge-004/abigail/lua/ch-1.lua
index f8f39b4135..a2fb3d0b2b 100644
--- a/challenge-004/abigail/lua/ch-1.lua
+++ b/challenge-004/abigail/lua/ch-1.lua
@@ -37,7 +37,7 @@ local pi = "%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1}16idp'ONGs'2m.o,1HLY'}~P61@@Y-" ..
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" ..
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" ..
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" ..
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB";
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?";
local in_size = 5
local out_size = 9
diff --git a/challenge-004/abigail/node/ch-1.js b/challenge-004/abigail/node/ch-1.js
index cc75958b8f..5316f4660d 100644
--- a/challenge-004/abigail/node/ch-1.js
+++ b/challenge-004/abigail/node/ch-1.js
@@ -37,7 +37,7 @@ let pi = "%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1}16idp'ONGs'2m.o,1HLY'}~P61@@Y-" +
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" +
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" +
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" +
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB";
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?";
let printf = require ('printf')
diff --git a/challenge-004/abigail/pascal/ch-1.p b/challenge-004/abigail/pascal/ch-1.p
index 9578563329..4a36a15995 100644
--- a/challenge-004/abigail/pascal/ch-1.p
+++ b/challenge-004/abigail/pascal/ch-1.p
@@ -53,7 +53,7 @@ begin
'"S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42"(1w.0dA)S' +
')-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-' +
'+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)";EH' +
- '%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB';
+ '%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?';
write ('3.');
i := 1;
while i <= length (pi) do begin
diff --git a/challenge-004/abigail/perl/ch-1.pl b/challenge-004/abigail/perl/ch-1.pl
index 1921bd3903..7a8e5a1669 100644
--- a/challenge-004/abigail/perl/ch-1.pl
+++ b/challenge-004/abigail/perl/ch-1.pl
@@ -87,4 +87,4 @@ $K`U.%bSL*&dG^f,lN@.+jGbU.g8,s&FwUP$9p3S/)f(4,y><Y0vnKH(:}m~
'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S
)-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-
+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH
-%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB
+%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?
diff --git a/challenge-004/abigail/python/ch-1.py b/challenge-004/abigail/python/ch-1.py
index af5d05111a..1bc0fa720b 100644
--- a/challenge-004/abigail/python/ch-1.py
+++ b/challenge-004/abigail/python/ch-1.py
@@ -39,7 +39,7 @@ pi = "%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1}16idp'ONGs'2m.o,1HLY'}~P61@@Y-" + \
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" + \
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" + \
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" + \
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB";
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?";
in_size = 5
diff --git a/challenge-004/abigail/r/ch-1.r b/challenge-004/abigail/r/ch-1.r
index 227256a10f..947a026b9f 100644
--- a/challenge-004/abigail/r/ch-1.r
+++ b/challenge-004/abigail/r/ch-1.r
@@ -44,7 +44,7 @@ pi <- as.integer (charToRaw (paste (
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S",
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-",
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH",
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB",
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?",
sep = '', collapse = ''))) - c (first_ord)
i <- 1
diff --git a/challenge-004/abigail/ruby/ch-1.rb b/challenge-004/abigail/ruby/ch-1.rb
index a5af29eeb0..6f7a2a6304 100644
--- a/challenge-004/abigail/ruby/ch-1.rb
+++ b/challenge-004/abigail/ruby/ch-1.rb
@@ -37,7 +37,7 @@ pi = "%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1}16idp'ONGs'2m.o,1HLY'}~P61@@Y-" +
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S" +
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-" +
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH" +
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB"
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?"
in_size = 5
out_size = 9
diff --git a/challenge-004/abigail/scheme/ch-1.scm b/challenge-004/abigail/scheme/ch-1.scm
index 37ebac267f..f7bfbc7144 100644
--- a/challenge-004/abigail/scheme/ch-1.scm
+++ b/challenge-004/abigail/scheme/ch-1.scm
@@ -47,7 +47,7 @@
"'S/z}#vS|i)S9[=*/nCG)PMaY-{pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S"
")-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-"
"+mCl2%)V#w%#y:[,?t*D$64`9.U+{`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH"
- "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiKB"))))
+ "%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE}p*H;._.[]4W+Eb7K#iiK?"))))
(define (decode out chars)
diff --git a/challenge-004/abigail/t/ctest.ini b/challenge-004/abigail/t/ctest.ini
index c72f82b193..8ce6c4c482 100644
--- a/challenge-004/abigail/t/ctest.ini
+++ b/challenge-004/abigail/t/ctest.ini
@@ -1,6 +1,5 @@
[names]
1-1 = Pi, 3242 digits
-1-2 = Pi, 3242 digits
2-1 = Small wordlist
2-2 = Large wordlist
@@ -8,13 +7,6 @@
extra_tests = Check_Program_Size
[1-1/bc]
-skip = Not for bc
-
-[1-2]
-skip = Only for bc
-
-[1-2/bc]
-skip = 0
exe_args = -l %RUN_FILE
env = BC_LINE_LENGTH=3300
diff --git a/challenge-004/abigail/t/input-1-2 b/challenge-004/abigail/t/input-1-2
deleted file mode 100644
index e69de29bb2..0000000000
--- a/challenge-004/abigail/t/input-1-2
+++ /dev/null
diff --git a/challenge-004/abigail/t/output-1-1.exp b/challenge-004/abigail/t/output-1-1.exp
index 574e7ee129..9596eb7c20 100644
--- a/challenge-004/abigail/t/output-1-1.exp
+++ b/challenge-004/abigail/t/output-1-1.exp
@@ -1 +1 @@
-3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459
+3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571456
diff --git a/challenge-004/abigail/t/output-1-2.exp b/challenge-004/abigail/t/output-1-2.exp
deleted file mode 100644
index 9596eb7c20..0000000000
--- a/challenge-004/abigail/t/output-1-2.exp
+++ /dev/null
@@ -1 +0,0 @@
-3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571456
diff --git a/challenge-004/abigail/tcl/ch-1.tcl b/challenge-004/abigail/tcl/ch-1.tcl
index cca5be8f9d..730f6df613 100644
--- a/challenge-004/abigail/tcl/ch-1.tcl
+++ b/challenge-004/abigail/tcl/ch-1.tcl
@@ -49,7 +49,7 @@ append pi {%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1"16idp'ONGs'2m.o,1HLY'"~P61@@Y-} \
{'S/z"#vS|i)S9[=*/nCG)PMaY-!pML);vN?%kRcr#*.Tg,x;42'(1w.0dA)S} \
{)-us%.#1$R-rkwf%m%B-(ctK8+4Sn^%*C1Y-wqsr%eNg11%$De&&07q+%1>-} \
{+mCl2%)V#w%#y:[,?t*D$64`9.U+!`-SBX-+gi/o)0B$q#V$tW+#lmM)';EH} \
- {%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE"p*H;._.[]4W+Eb7K#iiKB}
+ {%yFPZ/Gy(~,dl@h)A&ju-Co2,-du++)[Awk&wE"p*H;._.[]4W+Eb7K#iiK?}
set pi [string map {"!" "\{" {"} "\}"} $pi]