Posted to tcl by evilotto at Tue Dec 20 02:58:53 GMT 2016view raw

  1. proc M a\ b {string map $a $b}
  2. proc ^ a {split $a @}
  3. regsub -all \[^@|] [set b [M [^ {||||@|||@$@BS @%@TAB @&@CAPS @?@ENTER@*@SHIFT }] [regsub -all {[^@]} {`1234567890-=$@%QWERTYUIOP[]\@&ASDFGHJKL;'?@*ZXCVBNM,./*} {||& ||}]]] _ f
  4. set h [M {\\ _ / _ | \ } [set g [M {||_ |/_ _|| _\\|} [M {||| \\|/} $f]]]]
  5. lmap x [^ $h] y [^ $b] z [^ $f] w [^ $g] {puts $x\n$y\n$z\n$w}