From c605f12d632ce50a7b8e397699dca20927e1b77b Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 9 Jan 2022 19:11:00 +0100 Subject: Week 4, part 1: Tcl solution --- challenge-004/abigail/README.md | 1 + challenge-004/abigail/tcl/ch-1.tcl | 75 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 challenge-004/abigail/tcl/ch-1.tcl diff --git a/challenge-004/abigail/README.md b/challenge-004/abigail/README.md index 6d83ea003f..70c4238767 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) +* [Tcl](tcl/ch-1.tcl) ## [Challenge 2](https://perlweeklychallenge.org/blog/perl-weekly-challenge-004/#challenge-2) diff --git a/challenge-004/abigail/tcl/ch-1.tcl b/challenge-004/abigail/tcl/ch-1.tcl new file mode 100644 index 0000000000..cca5be8f9d --- /dev/null +++ b/challenge-004/abigail/tcl/ch-1.tcl @@ -0,0 +1,75 @@ +#!/usr/local/opt/tcl-tk/bin/tclsh + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-004 +# + +# +# Run as: tclsh ch-1.tcl +# + +# +# " -> } +# ! -> { +# + +scan "#" %c first_ord +scan "~" %c last_ord +scan "\\" %c skip_ord + +set range [expr $last_ord - $first_ord] +set in_size 5 + +append pi {%(uP7+Y`ME)gy(7')v?;%s^qc(Mj1"16idp'ONGs'2m.o,1HLY'"~P61@@Y-} \ + {*O/.v,Jc~D+ttA'&EPjR(zXxD$dr,M$P=-f*YQqe,GIZ`0x5oL1(mpl17en`} \ + {)Q$ge,L6_5.I;hj%yy6n,L_t')dtyy)[ugS&-3(c&lC:a&~8SP#+iis+WR&8} \ + {*Y;V3/+JD@-J>7u0$Nh<#2&:@+#=`/*YtP-0t8uf+tf/V&yjx>+]S=&%d"7z} \ + {0YXa9$SOyt$*mzv1&X(W(.!0G-Vya`0a"KI0pQD2,nV0:,WE0+#?F[>(iMb"} \ + {%k(tB/UO0m.8R'x%Vys_-|IgL.y-n6(v[*#+/-J1#[`]} \ + {&*M#'1wg} \ + {-"+B"*jWDi)/2&k,h|/)+eu-3)9!mU-`:]M/YF$a.O0SF0!~2C.EjkZ&>|lD} \ + {#%UmL+w)$V&14Ty0arq+%xnAo/XX/y0_=Bl/)f*"'Gc88'GV;X1RG~<+gJ8p} \ + {&^E~A'/3N=*R2|j&SgD@-0St?*jL@'-ZsbD$+_hy.#HkF0cO_[#t0wL-8._r} \ + {#0)@p#4(ha+lyD6,[|1w%_K//+c2#j.4xl2)SpX=.>)gp$R)ZP,IS%@,"%#J} \ + {*1zj[,sIw#%6pwl%D'fk#Bx6'%4?.0&c9'?#R7P|&ZJ;M&q6q&&|h9?0LVI"} \ + {(2lq>#/G+<,Bv`l+U'K?'2i"q+,J8W/7dU++X(l51R>#T&)fV0'I%FC%HHkt} \ + {%!(NN&Kn$]*e0,} \ + {$K`U.%bSL*&dG^f,lN@.+jGbU.g8,s&FwUP$9p3S/)f(4,y>!*/L)t} \ + {-Oi$Y*&I1x1Kyk#$"~i|)^4uG%|&sU)XNR-,PLl/.lmT'&_~it-16U9-B~A[} \ + {("s.a0~]Zj*<*~%-~N27%$O,*/a,,c%<#@60On3z0~3@B13UOG/A^&K,GRHi} \ + {,S_:*&9I!_$nCM9&U^*9)WmPj+$TL8.]WpP)CWDR$u#7])K/Bi+,[B9(0~a&} \ + {&=aag,L-UG#HoAx/=@p,&ux!:0($3X*[J<4,eh!E1F&tE$cGo.&C"15*:u!Z} \ + {,:*H^'f,=~$,z%B)WZbL$DjA;/oFKa%.>ig/^o.90e/P=*Auex0TD"p/hncA} \ + {/%d87#/u19,r&sM(A+4V0%4u$."F+P0o|4e.g(<[#5yy*]3@5%II741/XZ>)Lm6e0``3L%.JF[+Z?8b(tj7C} \ + {'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} + +set pi [string map {"!" "\{" {"} "\}"} $pi] + +puts -nonewline "3." +for {set i 0} {$i < [string length $pi]} {incr i $in_size} { + set out 0 + for {set j $i} {$j < [expr $i + $in_size]} {incr j} { + scan [string index $pi $j] %c ch + if {$ch > $skip_ord} {incr ch -1} + set out [expr $out * $range + $ch - $first_ord] + } + puts -nonewline [format "%09d" $out] +} + +puts "" + +# +# FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER +# FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER +# FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER? +# FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER FODDER +# FODDER FODDER FODDER FODDER FODDER FODDER! +# -- cgit