in reply to Re: Using the olde times internet
in thread Using the olde times internet

oiskuu’s last variant is 87 bytes long:

s!.!sprintf("%b ",2+index"etianmsurwdkgohvfüläpjbxcyzqö",lc$&)=~s/.//r=~y/01/.-/r!ge

By assigning to $_, we can scrap the parentheses and the two =~, saving two bytes:

s!.!$_=sprintf"%b ",2+index"etianmsurwdkgohvfüläpjbxcyzqö",lc$&;s/.//;y/01/.-/r!ge

Dropping the support for diacritics (only ü, ä and ö where supported anyway) easily saves another five bytes:

s!.!$_=sprintf"%b ",2+index etianmsurwdkgohvfXlXpjbxcyzq,lc$&;s/.//;y/01/.-/r!ge

With some shuffling around, we can shave off another byte: (note that this version prints a leading whitespace, while the previous ones printed a trailing whitespace)

s!.!sprintf" %b",2+index etianmsurwdkgohvfXlXpjbxcyzq,lc$&!ge;s/ ./ /g;y/01/.-/

Using a regex instead of index saves yet another byte, now down to 78:

s!.!XetianmsurwdkgohvfXlXpjbxcyzq=~lc$&;sprintf" %b","@+"!ge;s/ ./ /g;y/01/.-/

Finally, here’s a 87 bytes variant that doesn’t require the -p flag. It’s longer by StackExchange’s standard (where -p counts as a single additional byte), but shorter for codegolf.com, where you would have to write the entire 10-byte shebang line.

print+sprintf("%b ","@+")=~s/.//r=~y/01/.-/rwhile-etianmsurwdkgohvfXlXpjbxcyzq=~lc getc

I think there’s still room for improvement.

Replies are listed 'Best First'.
Re^3: Using the olde times internet
by Grimy (Pilgrim) on Mar 08, 2016 at 15:43 UTC
    I accidentally posted the above as an Anonymous Monk, and now I can’t edit it to fix the glaring typo :/