text:
Help the dealer rebuild the deck
The dealer has been sloppy and lost track of what cards his/her deck contains and what cards are missing, can you help him/her?

A complete deck consists of 52 playing cards, namely:
Each color in the deck (hearts, diamonds, spades, clubs) contains:

The numbers [2 - 10]
A Jack
A Queen
A King
An Ace

Task
Your program will read the contents of the deck from STDIN until a newline is read.
You can assume that the input will be in the form of "nX nX nX nX" etc. where:

n - any number between [2 - 10] or either 'J', 'Q', 'K' or 'A'.
(You can assume upper case only for non-numeric characters)
X - any of the following : 'H', 'D', 'S', 'C' (You can assume upper
case only)

Where:

'J' = Jacks
'Q' = Queen
'K' = King
'A' = Ace

And

'H' = Hearts
'D' = Diamonds
'S' = Spades
'C' = Clubs

You can assume that there will be no duplicates in the input.
Your program must then print the missing cards in the deck to STDOUT in the same fashion as the input ("nX nX nX") or print 'No missing cards' if all 52 cards are supplied.
There is no constraint on the order of the output of the cards.
Example input:
9H AH 7C 3S 10S KD JS 9C 2H 8H 8C AC AS AD 7D 4D 2C JD 6S

Output:
3H 4H 5H 6H 7H 10H JH QH KH 2D 3D 5D 6D 8D 9D 10D QD 2S 4S 5S 7S 8S 9S QS KS 3C 4C 5C 6C 10C JC QC HC

Happy golfing!

Could we use T instead of 10?

@Arnauld I'm afraid this is all the information the dealer gave me so you'll have to stick with '10' or he'll get moody.

@GillBates Doesn't J represent 10, though?

@Okx 2 3 4 5 6 7 8 9 10 J Q K A. J represents 11.

@Okx J is the 10th letter of the alphabet, but that's not what this is about. :)

Can input be ['nX', 'nX', 'nX', …]?

Are leading/trailing spaces allowed? Is it okay if the cards are separated by arbitrary amounts of spaces?

Can we use some other separator other than the space?

@kritixilithos Yes, yes.

@kritixiLithos No

Windows Batch (CMD), 205 204 bytes
@set/pc=
@set d=
@for %%s in (H D S C)do @for %%r in (2 3 4 5 6 7 8 9 10 J Q K A)do @call set d=%%d%% %%r%%s
@for %%c in (%c%)do @call set d=%%d: %%c=%%
@if "%d%"=="" set d= No missing cards
@echo%d%

Loops over the suits and ranks building a complete deck, then deletes the input cards. Save 1 byte if T is allowed instead of 10. Save 11 bytes if command-line arguments are acceptable input. Edit: Saved 1 byte thanks to @user202729.

I count 200 bytes.

@HyperNeutrino As I'm on Windows, I use Notepad to save the file, which means that newlines cost me 2 bytes instead of one. I'm too lazy to use a different editor to save bytes.

Oh lol okay. I get 200 bytes using Sublime Text.

@Neil On Windows you can use LF instead of CR LF, saves 5 bytes (HyperNeutrino comment above) and it still work.

Also, you can pass /v to CMD (+3 byte?) to EnableDelayedExpansion, eliminate call in the for loop. / Seems that you have an extra space between (%c%) and do?

Python, 147 146 145 138 131 129 127 125 120 bytes
print(' '.join(set(`x`+y for x in range(2,11)+list('JQKA')for y in'HDSC')-set(raw_input().split()))or'No missing cards')

Gets all possible cards as a set and subtracts the input cards.
-1 byte thanks to mbomb007 pointing out an extra space in my code.
-1 byte thanks to mbomb007 for pointing out some golfing that can be done with Python 2 (-5 bytes and +4 bytes for raw_ in raw_input)
-7 bytes by switching to using sets and set subtraction instead of list comprehensions
-7 bytes thanks to ValueInk for pointing out that I don't need to list the suites
-2 bytes thanks to Datastream for pointing out that just writing out all of the values is more byte-effective than the weird thing I had earlier
-2 bytes thanks to ValueInk for pointing out that sets can take generators so I don't need to put it in a list comprehension
-2 bytes thanks to Datastream for pointing out that I can golf it down even more if I switch to Python 3 again... (+2 for parens after for print, -4 for raw_)
-5 bytes thanks to Lulhum and myself for pointing out that by switching back to Python 2 (!!!) can help me save bytes (using range again, using backticks instead of str(, and +4 due to raw_)

You have an extra space you can remove, and you can use \d`instead ofstr(d)if you use Python 2, in addition to removing the parens forprint`.

for y in 'HDSC' also works for getting all the characters in there. (You still need list('JQKA') for the other part, though.)

'1 2 3 4 5 6 7 8 9 10 J Q K A'.split() Might save a few bytes instead of the [dfor d in range(2,11)]+list('JQKA') manipulation you have going on.

Agreed, it seems like it will save 2 bytes on account of the fact that 1 doesn't need to be added. Also, you can remove the outer brackets for your first list comprehension because the set constructor takes in generator objects just fine.

@ValueInk Yep, used both suggestions and it saved 9 bytes overall. Thanks!

So has it come full circle that swapping to python 3 saves 2 more bytes? +2 for adding the () for print. -4 for removing raw_

@Datastream Oh wow, that's funny. Thanks!

@Datastream converting the list items to string is shorter. set(str(x)+y for x in range(2,11)+list('JQKA')for y in'HDSC') save 6 bytes over set(x+y for x in'2 3 4 5 6 7 8 9 10 J Q K A'.split()for y in'HDSC')

Absolutely. Unfortunately, @Keerthana Prabhakaran beat us all with his implementation below(specifically setting up the deck). :P I wonder how close we are to the record of most rewrites for one golf?

05AB1E, 39 bytes
ðIð¡YTŸ"JQKA"S«"CDHS"SâJsKðýDg>i“Noœ¶‡¶

Try it online!
Explanation
ðI                                       # push space and input
  ð¡                                     # split on spaces
    YTŸ                                  # push the range [2 ... 10]
       "JQKA"S«                          # append ['J','Q','K','A']
               "CDHS"Sâ                  # cartesian product with suits
                       J                 # join each card with its suit
                        sK               # remove any cards in input from the list of all cards
                          ðýDg>i         # if the length of the resulting list is 0
                                “Noœ¶‡¶  # push the string "No missing cards"
                                         # output top of stack

C#, 343 bytes
First time posting one of my golfs, not a very good contender though. I'm sure I can reduce this more.
The idea behind it is a sparse array storing occurrences of cards, with indexes calculated by the ASCII values of the different values and suits multiplied against each other (e.g. an ace of spades (AS) would be stored in the area at index (65 * 83 = 5395)). This way, each type of card gets a unique index that can be checked later for existance in the "map" array.
void M(string[]a){var c=new int[]
{50,51,52,53,54,55,56,57,49,74,81,75,65,72,68,83,67};var e=new
int[9999];int i=0;int j=0;foreach(var s in a) e[s[0]*s[s.Length-
1]]++;int f=0;for(i=0;i<13;i++)for(j=13;j<17;j++)if(e[c[i]*c[j]]==0)
{f=1;Console.Write(((i<9)?(i+2)+"":(char)c[i]+"")+(char)c[j]+"
");}if(f==0) Console.WriteLine("No missing cards");}

CJam, 49 47 bytes
B,2>"JQKA"+"HDSC"m*:slS/-S*"No missing cards"e|

Try it online!
Explanation
B,                    e# The range from 0 to 10
2>                    e# Slice after the first two elements, giving the range from 2 to 10
"JQKA"+               e# Concatenate with "JQKA", giving the array containing all ranks
"HDSC"                e# The string containing all suits
m*                    e# Take the Cartesian product
:s                    e# And cast each pair to a string. Now a full deck has been constructed
l                     e# Read a line of input
S/                    e# Split it on spaces
-                     e# Remove all cards from the deck that were in the input
S*                    e# Join the result with spaces
"No missing cards"    e# Push the string "No missing cards"
e|                    e# Take the logical OR of the result and the string, returning the
                      e#   first truthy value between the two. (empty arrays are falsy)

Jelly, 39 bytes
9R‘Ṿ€;“JQKA”p“CDHS”F€œ-ɠḲ¤Kȯ“¡¢ıḍĖ9ṭƥw»

Try it online!
How?
9R‘Ṿ€;“JQKA”p“CDHS”F€œ-ɠḲ¤Kȯ“¡¢ıḍĖ9ṭƥw» - Main link: no arguments
9R                                      - range(1,9)    [1,2,3,4,5,6,7,8,9]
  ‘                                     - increment     [2,3,4,5,6,7,8,9,10]
   Ṿ€                                   - uneval each  [['2'],['3'],['4'],['5'],['6'],['7'],['8'],['9'],['10']]
     ;“JQKA”                            - concatenate with char-list "JQKA" [['2'],['3'],['4'],['5'],['6'],['7'],['8'],['9'],['10'],['J'],['Q'],['K'],['A']]
            p“CDHS”                     - Cartesian product with char-list "CDHS" [[['2'],['C']],[['2'],['D']],...]
                   F€                   - flatten each [['2','C'],['2','S'],...]
                         ¤              - nilad followed by link(s) as a nilad
                       ɠ                -     read a line from STDIN
                        Ḳ               -     split on spaces
                     œ-                 - multi-set difference
                          K             - join with spaces
                            “¡¢ıḍĖ9ṭƥw» - compressed string "No missing cards"
                           ȯ            - logical or
                                        - implicit print

Bash + coreutils, 89
sort|comm -3 <(printf %s\\n {10,{2..9},A,J,K,Q}{C,D,H,S}) -|grep .||echo No missing cards

I/O as a newline-delimited list.
Explanation

sort reads newline-delimited input from STDIN and sorts it
This is piped to comm
printf %s\\n {10,{2..9},A,J,K,Q}{C,D,H,S} is a brace-expansion to generate the full deck of cards.  The printf prints each card on its own line.  The order is given such that the output is the same as if it had been piped to sort
comm compares the full deck against the sorted input and outputs the difference.  -3 suppresses output of column 3 (the common ones)
The whole output from comm is piped to grep ..  If there was no output from comm (i.e. all cards were in the input), then the || "or" clause outputs the required message.  Otherwise the grep . matches all lines output from comm.

Try it online.

Python 2,104,93,130,114 bytes
r=input()
print' '.join(n+x for n in list('23456789JQKA')+['10']for x in'HDSC'if n+x not in r)or'No missing cards'

Try it online!

-10 bytes with hardcoding the list instead of using range!
+37 bytes - missed printing 'No missing cards' if all cards are present in input!
-16 bytes by modifying the code into a list comprehension!

Doesn't print "No missing cards"

@L3viathan thanks for pointing that out. I've edited my answer!

The list('23456789JQKA')+['10'] is clever. I was wracking my brain for a better way to split the 10 out of the list of single chars in the other python answer, but that works beautifully.

PowerShell, 114 111 110 bytes
param($n)('No missing cards',($a=(2..10+'JQKA'[0..3]|%{$i=$_;"CSHD"[0..3]|%{"$i$_"}}|?{$n-notmatch$_})))[!!$a]

Try it online!
Takes input $n as either a space-delimited or newline-delimited string. Constructs an array from the range 2..10 concatenated with JQKA (indexed with [0..3] to make it a char array). That array is fed into a loop |%{} that sets helper $i then loops over the suits to concatenate the results together with $i$_. At the end of this loop, we have an array of strings like ("2C", "2S", "2H", ... "AH", "AD"). That array is fed into a Where-Object (|?{}) with the filter as those elements $_ that regex -notmatch the input $n. The result of that filtering is stored into $a.
Then, we use a pseudo-ternary ( , )[] to select whether we output 'No missing cards' or $a, based on whether !!$a turns to a Boolean $false or $true. If $a is empty (meaning every card in the deck is in the input), then !!$a is 0, so the "No missing cards" is selected. Vice versa for $a being selected. In either case, that's left on the pipeline, and output is implicit.

sed, 157 + 1 (-r flag) = 170 158 bytes
x
s/$/;A2345678910JQK/
s/.+/&H&D&S&C;No missing cards/
:
s/(10|\w)(\w+)(.);/\1\3 \2\3;/
t
G
:s
s/(10.|[^ ;1]{2})(.*\n.*)\1/\2/
ts
s/[ ;]+/ /g
s/^ //
s/ N.+//

Try it online!
This generates all possible cards and then remove each card in the input from the generated cards.

Doesn't print "No missing cards"

@L3viathan Fixed

JavaScript (ES6), 117 114 111 bytes
s=>[...Array(52)].map((_,i)=>~s.search(c=('JQKA'[v=i>>2]||v-2)+'CDHS'[i&3])?_:c+' ').join``||'No missing cards'

This takes advantage of the fact that undefined entries in the array generated by map() are coerced to empty strings when join()'d.
Demo

let f =

s=>[...Array(52)].map((_,i)=>~s.search(c=('JQKA'[v=i>>2]||v-2)+'CDHS'[i&3])?_:c+' ').join``||'No missing cards'

console.log(f('9H AH 7C 3S 10S KD JS 9C 2H 8H 8C AC AS AD 7D 4D 2C JD 6S'))

C#, 282 bytes

Golfed
i=>{var o=new System.Collections.Generic.List<string>();string[] S={"H","D","S","C"},N="A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');foreach(var s in S){foreach(var n in N){if(!System.Linq.Enumerable.Contains(i,n+s)){o.Add(n+s);}}}return o.Count>0?string.Join(" ",o):"No missing cards";};

Ungolfed
i => {
    var o = new System.Collections.Generic.List<string>();
    string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

    foreach( var s in S ) {
        foreach( var n in N ) {
            if( !System.Linq.Enumerable.Contains( i, n + s ) ) {
                o.Add( n + s );
            }
        }
    }

    return o.Count > 0
        ? string.Join( " ", o )
        : "No missing cards";
};

Ungolfed readable
i => {
    // Initialize a list to contain the list of cards missing
    var o = new System.Collections.Generic.List<string>();

    // Initialize the list of suits and numbers of cards
    string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

    // Cycle through the suits...
    foreach( var s in S ) {
        // ... and the numbers ...
        foreach( var n in N ) {
            // ... and check it the combo number + suite is missing
            if( !System.Linq.Enumerable.Contains( i, n + s ) ) {
                // If it's missing, add it to the list of missing cards
                o.Add( n + s );
            }
        }
    }

    // If the count of missing cards is greater than 0...
    return o.Count > 0
        // Build a 'space' separated string with the missing cards
        ? string.Join( " ", o )
        // Or output the missing cards string
        : "No missing cards";
};

Full code
using System;
using System.Collections.Generic;
using System.Linq;

namespace Namespace {
   class Program {
      static void Main( String[] args ) {
         Func<String, Int32> f = i => {
            var o = new List<string>();
            string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

            foreach( var s in S ) {
               foreach( var n in N ) {
                  if( !i.Contains( n + s ) ) {
                     o.Add( n + s );
                  }
               }
            }

            return o.Count > 0
               ? string.Join( " ", o )
               : "No missing cards";
         };

         List<String>
            testCases = new List<String>() {
                "9H AH 7C 3S 10S KD JS 9C 2H 8H 8C AC AS AD 7D 4D 2C JD 6S"
            };

         foreach( String testCase in testCases ) {
            Console.WriteLine( $"{test}\n{f( test.Split( ' ' ) )}" );
         }

         Console.ReadLine();
      }
   }
}

Releases

v1.0 - 282 bytes - Initial solution.

Notes
Nothing to add

This is a very nice format for your answer, +1.

Retina, 76 bytes
^
A2345678910JQK¶
\G(10|.)
 $&H $&D $&S $&C
Dr` \S+
G1`
^$
No missing cards

Input/output is a list of space-separated cards. Output has a leading space.
Try it online!
Explanation
Most of the code deals with building the full list of cards that should be in the deck:
^
A2345678910JQK¶
\G(10|.)
 $&H $&D $&S $&C

First, we prepend a newline to the input, with all possible values of cards, then for each character of this line (or the couple of characters 10) we build the list of all possible suits of that card.
Dr` \S+

This is a deduplication stage, it splits the string into chunks consisting of a space plus some non-spaces and keeps only one occurrence of each chunk. The modifier r makes this operate from right to left, keeping then the last occurrence of each chunk.
G1`

We keep only the first line, which now contains the missing cards.
^$
No missing cards

If the result is empty we replace it with "No missing cards"

Ruby, 108 + 1 = 109 bytes
Uses the -p flag.
a=[*?2..'10',?J,?Q,?K,?A].map{|i|%w"H D S C".map{|c|i+c}}.flatten-$_.split;$_=a==[]?"No missing cards":a*' '

PHP, 143 Bytes
foreach([H,D,S,C]as$c)foreach([2,3,4,5,6,7,8,9,10,J,Q,K,A]as$v)$r[]=$v.$c;echo join(" ",array_diff($r,explode(" ",$argn)))?:"No missing cards";

Python 3, 106 bytes
Combination of the two previous python answers mixed with some string unpacking shenanigans.
print(' '.join({x+y for x in[*'23456789JQKA','10']for y in'HDSC'}-{*input().split()})or'No missing cards')

Julia, 116 bytes
print(join(setdiff(["$x$y"for x=∪(2:10,"JQKA")for y="HDSC"],readline()|>split),' ')|>s->s>""?s:"No missing cards")

Try it online!
Very similar to Kyle Gullions python solution. Setdiff instead of - and the lambda to test for the empty string make it worse though.

Japt, 39 bytes
"JQKA"¬c9õÄ)ï+"CHSD"q)kU ¸ª`No ÚÍg Ößs

Try it

Tcl, 270 228 chars
(Shortened with some help from Wît Wisarhd)
foreach s {H D S C} {foreach c {2 3 4 5 6 7 8 9 J Q K A} {dict set d $c$s 0}}
gets stdin l
foreach c $l {dict set d $c 1}
set m {}
dict for {c h} $d {if {!$h} {lappend m $c}}
if {![llength $m]} {set m "No missing cards"}
puts $m

Try it online!
Explanation:
This implementation builds a dictionary consisting of a boolean flag for
each of the cards represented by the cartesian product of H D S C and
2-through-A. It reads the line from stdin, which if given as the spec
as called for, is actually a well formed Tcl list. As each card is read,
a boolean true is input in the dictionary for that card.
At the end a parser loops through the dictionary, and adds any card that
did not have a true in the dictionary to a list of missing cards. If the
missing cards list length is zero, output "No missing cards", otherwise
output the list of missing cards.

There is a whole lot of extra whitespace in your answer.

PHP, 138 bytes
Ran with -n and -d error_reporting=0
I reuse some code from an old submition i made that asked for create a deck of cards
Code

<?$r=[];foreach([A,J,Q,K,2,3,4,5,6,7,8,9,10]as$t)array_push($r,$t.H,$t.S,$t.D,$t.C);
echo join(" ", array_diff($r,explode(" ",$argv[1])));

Try it online!
Explanation
<?$r=[];   # Declare the array that will contain the full deck
# the next line will generate the arry with the full deck
foreach([A,J,Q,K,2,3,4,5,6,7,8,9,10]as$t)array_push($r,$t.H,$t.S,$t.D,$t.C);
# explode the input string on each blank space and using array_diff to get the
# different elements withing both arrays. (and "echo" of course)
echo join(" ", array_diff($r,explode(" ",$argv[1])));

You can get it down to 120 with a few tweaks. 1) end the first line with a ?> replace the 'echo ' with <?= 2) entering the cards on regular command line with spaces will populate $argv as an array with each as an element, so you can remove the explode() entirely. Try it

i had no clue that $argv can work like that, thanks @gwaugh

Oh btw @gwaugh the question sayd that the argument is a string separated by spaces, can set the arguments one by one.

If you run it on the command line like:  'php deck.php 2S 5H JC' it's the same use as if you were to think of it as a space delimited string. You're just letting PHP parse it out for you. It's only the UI of TIO that makes you put them in separate.

Oh, i see. Will edit, thanks for the -bytes :D

C# (.NET Core), 197 bytes
Without LINQ.
s=>{var w="";for(var j=0;j<52;){var u="";int t=j%13;u=t<1?"K":t<2?"A":t<11?t+"":t<12?"J":"Q";t=j++/13;u+=t<1?"H":t<2?"D":t<3?"S":"C";w+=s.IndexOf(u)<0?u+" ":"";}return w==""?"No missing cards":w;};

Try it online!

Perl 6, 73 bytes
put keys((<<{^9+2}J Q K A>>X~ <C S D H>)∖get.words)||"No missing cards"

Try it online!
Some pretty simple set subtraction between the deck of cards and the input.

Python 3, 102 bytes
lambda s:' '.join(i+j for i in[*'A23456789JQK','10']for j in'HDSC'if(i+j)not in s)or'No missing cards'

Try it online!


text:
Negate The String
Disclaimer: This isn't my challenge but ThisGuy said I was OK to post.

Occasionally I want to make a word into it's opposite, like happiness goes to unhappiness. Unfortunately when this happens, my brain will sometimes go blank. Then one day, after yet another this happening, I thought to my self "This is what programs are for!"
As the English language has many exceptions, I have created a list which contains the prefix for the starting letter
q or h          -> dis- (honest -> dishonest)
l                -> il-  (legal -> illegal)
m or p           -> im-  (mature -> immature)
r                -> ir-  (responsible -> irresponsible)
everything else  -> un-  (worthy -> unworthy)

Task
Given an input as a string, make the string into its negative and output the result. You can assume that all the inputs given will fit the above rules. Submissions may be programs or functions, not snippets.
Input
A single string, taken either as a parameter or from STDIN
Output
The negated form of that string, conforming to the above rules
How to Win
This is a code-golf so shortest code wins

Can we assume we'll never get a word that starts with a q without a u?

@BasicSunset There's Qi. Arguably a proper noun, though

Related.

@BasicSunset Can you list 5 words beginning with a q and without a u in English?

Off the top of my head, qadi, qat, the aforementioned qi, qirsh, and qwerty. (I play a lot of Scrabble)

@wsbltc Well, there's a fair few, but they're pretty much all borrowed words from other languages so questionable whether they really count as English. So can we assume that a q is always followed by a u in the string or not?

Yes you can assume it always has a u

This challenge could make a pedant quite dishappy...

@Spratty You're not irright about that

Python, 55 bytes
lambda n:'ddiiiiuiimmlrnss'[5-'rlmphq'.find(n[0])::7]+n

Try it online!

We need to handle 7 different starting letters:
g -> dis, h -> dis, p -> im, m -> im, l -> il, r -> ir and everything else -> un
We can store all these negations in a single string and extract the right one through slicing:
 d      i      s
  d      i      s
   i      m
    i      m
     i      l
      i      r
       u      n

'ddiiiiuiimmlrnss'[i::7]

Now we need to calculate the start index i. 'rlmphq'.find returns 0 for 'r', 5 for q and -1 for everything not contained in the string.
To get the needed value from 0 to 6 we still need to subtract the return value from 5, resulting in this code:
'ddiiiiuiimmlrnss'[5-'rlmphq'.find(n[0])::7]

That's really cute!

Can someone explain how the hell is this works? I understand what's going on with the slice notation, but what are the magic strings ddiiiiuiimmlrnss and rlmphq and the number 5 for, why is the slice skip 7?

@Keatinge added an explanation. I hope it helps you

GNU sed, 50 bytes
Includes +1 for -r
s/^q|^h/dis&/
s/^l|^r|^m/i&&/
s/^p/imp/
t
s/^/un/

Nothing fancy. Uses & in the replacement to combine a few substitutions, and t to skip the last one if one of the first substitutions happens.
Try it online!

Jelly, 30 bytes
1ị“qmlrrhp”iị“3bµWI⁼ṡ÷ʠ$»œs5¤;

Try it online!
How?
1ị“qmlrrhp”iị“3bµWI⁼ṡ÷ʠ$»œs5¤; - Main link: string
1ị                             - 1 index into the string (first character of the string)
           i                   - 1-based index of 1st occurrence of that in (else zero):
  “qmlrrhp”                    -     char list "qmlrrhp"
            ị                  - index into (1-based and modulo):
                            ¤  -     nilad followed by link(s) as a nilad:
             “3bµWI⁼ṡ÷ʠ$»      -         compressed string "dis"+"imili"+"run"="disimilirun"
                         œs5   -         split "equally" into 5: ["dis","im","il","ir","un"]
                             ; - concatenate with the string

Note that the repeated r in “qmlrrhp” is in the 5th index, which, if referenced, would result in prepending un, so it could equally well be anything other than h or p.

TI-Basic, 104 bytes
Prompt Str0
sub(Str0,1,1→Str2
Str0
If Str2="Q" or Str2="H
"DIS"+Ans
If Str2="L
"IL"+Ans
If Str2="M" or Str2="P
"IM"+Ans
If Str2="R
"IR"+Ans
If Ans=Str0
"UN"+Ans
Ans

Requires all capital letters.
Explanation:
Prompt Str0             # 4 bytes, input user string to Str0
sub(Str0,1,1→Str2       # 12 bytes, store first character in Str2
Str0                    # 3 bytes, store Str0 in Ans
If Str2="Q" or Str2="H  # 14 bytes, if the first letter was Q or H
"DIS"+Ans               # 8 bytes, store DIS+Ans in Ans
If Str2="L              # 7 bytes, If the first letter was L
"IL"+Ans                # 7 bytes, store IL+Ans in Ans
If Str2="Q" or Str2="H  # 14 bytes, if the first letter was Q or H
"IM"+Ans                # 7 bytes, store DIS+Ans in Ans
If Str2="R              # 7 bytes, if the first letter was R
"IR"+Ans                # 7 bytes, store IR+Ans in Ans
If Ans=Str0             # 6 bytes, if Ans has not been changed (first letter was none of the above)
"UN"+Ans                # 7 bytes, store UN+Ans in Ans
Ans                     # 1 byte, implicitly return Ans

81 bytes

///, 59 56 bytes
/^/\/\/#//#qu/disqu^h/dish^l/ill^m/imm^p/ipp^r/irr^/un/#

Try it online!
Input goes after the very last #.
How it works:
I made an optimization that reduced the size to 56 bytes, but since that complicates things I will explain the original version, then explain the golf.
/#qu/disqu//#h/dish//#l/ill//#m/imm//#p/ipp//#r/irr//#/un/# |everything after the ` |` is not code.
/#qu/disqu/                                                 |replace `qu` with `disqu`
           /#h/dish/                                        |replace `h` with `dish`.
                    /#l/ill/                                |replace `l` with `ill`.
                            /#m/imm/                        |replace `m` with `imm`.
                                    /#p/ipp/                |replace `p` with `ipp`.
                                            /#r/irr/        |replace `r` with `irr`.
                                                    /#/un/  |replace everything else with `un`.
                                                          # |safety control

Intuition: The challenge is simple enough, just add the negative depending on the beginning of the word. However, in ///, you cannot just concatenate if [...], you can only replace something following a specific pattern. So in this program, the positive word beginnings are replaced with the negative word beginnings. The # was added to make sure that once a new beginning was added, no more new beginnings would be added. The # also made it possible to do 'everything else: un'.
The golf incorporates a new substitution at he beginning: /^/\/\/#/. This replaces all ^ with //#, which was a common pattern in the original version.

Batch, 114 bytes
@set/pw=
@set p=un
@for %%p in (dis.q dis.h il.l im.m im.p ir.r)do @if .%w:~,1%==%%~xp set p=%%~np
@echo %p%%w%

Checks the first character of the word against the list of custom prefixes and if so changes the prefix from the default of un. Special-casing qu is possible at a cost of 21 bytes.

JavaScript (71 64 61 bytes)
w=>({q:a='dis',h:a,l:'il',m:b='im',p:b,r:'ir'}[w[0]]||'un')+w
Edits:

Saved 7 bytes thanks to @ErtySeidohl (charAt(0) -> [0])
Saved 3 bytes thanks to @edc65 (assigning shared prefixes to variables)

var f = w=>({q:a='dis',h:a,l:'il',m:b='im',p:b,r:'ir'}[w[0]]||'un')+w;

function onChange() {
   var word = event.target.value;
   var output = f(word);
   document.getElementById('output').innerHTML = output;
}
Input Word: <input type='text' oninput='onChange()'/>

Output Word:

If you don't care about backward compatibility with IE7, couldn't you use w[0] instead of w.charAt(0)?

@ErtySeidohl Thanks! Just learned something new ;-)

I'm new here, but is it legitimate to provide an answer starting with just w=>...? The actual function definition would include let f=w=>... ? (Probably covered in an FAQ somewhere...)

@SteveBennett yes it's legitimate. Naming the function is not relevant

w=>({q:a='dis',h:a,l:'il',m:b='im',p:b,r:'ir'}[w[0]]||'un')+w 3 bytes less

Javascript, 72 71 66 61 60 59 bytes
w=>('dis....il.im...im.dis.ir'.split('.')[w.charCodeAt(0)-104]||'un')+w
w=>'un.dis.dis.il.im.im.ir'.split('.')['qhlmpr'.indexOf(w[0])+1]+w
Yeah, it's still longer than an existing solution. :)
w=>['un','dis','im','il','ir']['qmlrhp'.search(w[0])%4+1]+w

In case this needs any explanation, I'm taking advantage of the q/h and m/p pairs by combining their index in the search string with a mod 4, then using that as the lookup into the prefix array.

Great answer. Save 1 byte using search instead of indexOf. And some more, I think, using & instead of %

Thank you! I didn't know about search. Can't see how to make the & trick work - would be perfect if my array was only 4 elements.

Haskell, 71 bytes
f l=maybe"un"id(lookup(l!!0)$zip"qhlmpr"$words"dis dis il im im ir")++l

Usage example: f "legal"-> "illegal". Try it online!
Build a lookup table of prefix/replacement pairs for looking up the first char of the input string with a default value of "un" if not found.

Retina, 54 bytes
^[^hqlmpr]
un$+
^[hq]
dis$+
^l
il$+
^[mp]
im$+
^r
ir$+

Explanation:
             {implicit replace stage}
^[^hqlmpr]   Append un to words starting with none of: hqlmpr
un$+
^[hq]        Append dis to words starting with h or q
dis$+
 ^l          Append il to words starting with l
il$+
^[mp]        Append il to words starting with m or p
im$+
^r           Append ir to words starting with r
ir$+

First time I've used Retina. It's a pretty neat language.
Try it online!

Very nice first try at a language! +1

And with that you have 2500 rep! Congratulations!

And your user index is 26600!

So much perfect base-10 !

Mathematica, 107 bytes
StringReplace[StartOfString~~x:#:>#2<>x&@@@{{"q"|"h","dis"},{"l","il"},{"m"|"p","im"},{"r","ir"},{_,"un"}}]

Explanation:
StartOfString~~x:#:>#2<>x& is a pure function where the first argument is a string pattern to match at the beginning of the string and the second argument is a string to prepend to the match. It returns a delayed rule suitable for use within StringReplace. This is then applied to each of the pairs {{"q"|"h","dis"},{"l","il"},{"m"|"p","im"},{"r","ir"},{_,"un"}} resulting in the list of rules
{
  StartOfString~~x:"q"|"h":>"dis"<>x,
  StartOfString~~x:"l":>"il"<>x,
  StartOfString~~x:"m"|"p":>"im"<>x,
  StartOfString~~x:"r":>"ir"<>x,
  StartOfString~~x_:>"un"<>x
}

Finally this list is passed into StringReplace which gives an operator on strings.

Does Mathmatica have a builtin for everything?

PHP, 101 Bytes
echo preg_match("#^(qu|[hlmpr])#",$argn,$t)?[qu=>dis,h=>dis,l=>il,m=>im,p=>im,r=>ir][$t[1]]:un,$argn;

Online Version

Excel 78 bytes
=TRIM(MID("  disdisil im im ir un",IFERROR(FIND(LEFT(A1),"qhlmpr"),7)*3,3))&A1

I found some close contenders using different methods that scored 81 bytes:
=IFERROR(CHOOSE(FIND(LEFT(A1),"qhlmpr"),"dis","dis","il","im","im","ir"),"un")&A1

And 84 bytes:
=IFERROR(TRIM(MID("im disi"&LEFT(A1),MOD(FIND(LEFT(F1),"qlmhrp"),3)*3+1,3)),"un")&A1

C, 109 107 bytes
f(char*s){printf("%s%s",*s-109&&*s-112?*s-108?*s-114?*s-104&&*s-113|s[1]-117?"un":"dis":"ir":"il":"im",s);}

Try it online!

REXX, 78 bytes
arg a
s.=un
s.q=dis
s.h=s.q
s.l=il
s.m=im
s.p=im
s.r=ir
p=left(a,1)
say s.p||a

Saves a few bytes by replying in UPPERCASE, e.g. potent -> IMPOTENT.

Perl, 49 + 1 (-p flag) = 50 bytes
s|^[hq]|dis$&|||s|^[lmr]|i$&$&|||s|p|imp|||s||un|

Using:
perl -pe 's|^[hq]|dis$&|||s|^[lmr]|i$&$&|||s|p|imp|||s||un|' <<< responsible

Try it online.

Clojure, 65 bytes
#(str(get{\q"dis"\h"dis"\l"il"\m"im"\p"im"\r"ir"}(first %)"un")%)

Well this is boring... but I couldn't make it any shorter. At least there is very little whitespace.

OCaml, 85
(fun s->(match s.[0]with|'q'|'h'->"dis"|'l'->"il"|'m'|'p'->"im"|'r'->"ir"|_->"un")^s)

Anonymous function, uses pattern matching on its first char.

Vyxal, 38 bytes
«÷c4w«?hḟ:u=[`un`|4%«⟑Ẇf:«2ẇ`Ġ⟨`p$i]?+

Try it Online!
Messy.

PowerShell, 66 62 bytes
%4+1 inspired by @Steve Bennett
param($s)(echo un dis im il ir)[('qmlrhp'|% I*f $s[0])%4+1]+$s

Try it online!

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Decode the hidden message!
Introduction
One day, you were just relaxing in your office in the CIA, when suddenly you see an alert on your computer. Your programs have just intercepted hundreds of coded messages! A quick examination reveals the rule for encoding, but you need a program in order to decode fast.
Challenge
You will be given a list of strings, separated by commas. Each string will contain either:

Part of the coded message

It is part of the coded message if it is not in the form a=b. Note that it is part of the message if it is ab=c. Add this string to the coded message.

Part of the encoding scheme

This will be in the form of a=b. That means that all a's in the message must be replaced by b's. Note that it could be a==, meaning that all a`s must be replaced with ='s.

Your program must then output the message, decoded using the scheme found.
Other info:
Your input will only contain commas for separating the strings. It could contain other characters, like !1#, etc. It will not contain uppercase letters. Bits of decoding info do not decode each other. Only the message is affected by the decoding information. Only one replacement will be given for each character, e.g. no "io,"i=u","i=g"
Examples
Input:"ta","y=s","y","a=e","b=t","b"," ","j","j=1"
Output:test 1
Input:"z=p","zota","g=e","yugkb","y=t","u=o","k=s","li","fg","b=="
Output:potatoes=life
Input:"p","=","==n","ot","p=a","hiz","i=e","z=r"
Output:another
This is code-golf, so shortest answer in bytes wins!

oh yeah, sorry! editting

What about transitivity and circularity, e.g. "massega","e=a","a=e" and the like?

bits of decoding info do not decode each other. Only the message is affected by the decoding information.

also, only one replacement will be given for each character, e.g. no "io,"i=u","i=g"

Thanks, I suggest adding this information to the specification.

Can the input be taken as list of strings in the language's native list format? Like ["a","b","b=c"].

@RainerP. yes, it can. as long as decoding will work if "[" is in one of the strings

Is a=bc part of the encoding or part of the message? What about a=?

Can output be a newline separated list of characters?

@Titus that would be part of the message, since it is not a=b

@math_junkie that would have to be a no.

Can we assume the message can never be all equals signs?

Jelly, 19 bytes
ḊṖ⁼“=”
ÇÐfKm2yÇÐḟF$

Try it online!
How?
ḊṖ⁼“=” - Link 1, isMappngElement?: string
Ḋ      - dequeue
 Ṗ     - pop
   “=” - char-list,['=']
  ⁼    - equal?

ÇÐfKm2yÇÐḟF$ - Main link: list of strings
 Ðf          - filter keep:
Ç            -     last link (1) as a monad
   K         - join with spaces
    m2       - modulo 2 slice (every other character)
           $ - last two links as a monad:
        Ðḟ   -     filter discard:
       Ç     -         last link (1) as a monad
          F  -     flatten
      y      - translate right according to the mapping of left

Very interesting, what does m2 "modulo 2 slice" mean?

m is a dyadic atom that takes every right-th element of left*. Here, for example, ['x','=','y','<space>','a','=','b']m2 would yield ['x','y','a','b']. (* unless right is zero when it appends a reflection instead.)

Python 3, 98
lambda l:''.join(x*('='!=x[1:-1])for x in l).translate({'='!=x[1:-1]or ord(x[0]):x[2:]for x in l})

This lambda function receives a list of strings (input) and returns a string (the decoded message).
Examples:
>>> f(['ta', 'y=s', 'y', 'a=e', 'b=t', 'b', ' ', 'j', 'j=1'])
'test 1'
>>> f(['z=p', 'zota', 'g=e', 'yugkb', 'y=t', 'u=o', 'k=s', 'li', 'fg', 'b=='])
'potatoes=life'
>>> f(['p', '=', '==n', 'ot', 'p=a', 'hiz', 'i=e', 'z=r'])
'another'

Do you need :-1 or will :2 work?

@DSM I think it's needed because '=' == x[1:2] will be true for x = 'a=bc', which is not a part of the encoding scheme

Ahh, good point!

Haskell, 85 bytes
f x=[(a,b)|[a,'=',b]<-x]
h x=map(\v->maybe v id$lookup v$f x)$concat[c|c<-x,[]==f[c]]

Usage
>h ["p","=","==n","ot","p=a","hiz","i=e","z=r"]
>"another"

Description
f creates a lookup table.
concat[c|c<-x,[]==f[c]] extracts the message.
map(\v->maybe v id$lookup v$f x) perfoms the lookup.

JavaScript (ES6), 87 bytes
(l,s='',d={})=>l.map(v=>/.=./.test(v)?d[v[0]]=v[2]:s+=v)&&[...s].map(c=>d[c]||c).join``

<input id=a oninput="try{b.innerText=((l,s='',d={})=>l.map(v=>/.=./.test(v)?d[v[0]]=v[2]:s+=v)&&[...s].map(c=>d[c]||c).join``)(eval(`[${a.value}]`))}catch(e){}"/>
<p id=b />

Retina, 84 82 77 74 bytes
Takes a comma-separated list as input. Note the trailing newline

^|$
,,
+`,(.=.)(,.*)
$2$1
M!&`(.).*,,.*\1=.|.+,
%`(.).*,$|.*(.)
$1$2
\n|,

Try it Online!
Explanation:
First, we move all expressions of the form .=. to the end of the string and separate these from the message with a double comma (,,). This is so that in the next step, we can find all encodings by checking if each character ahead of the ,, has a matching =. afterwards. This is achieved by M!&`(.).*,,.*\1=.|.+, which finds all such matches and places them into a linefeed separated list of strings. We then modify each string to only contain either one unencoded character or the encoded version of the character. Finally we replace all linefeeds and commas with the empty string so that our output is formatted nicely.

Batch, 188 bytes
@echo off
set/pm=
set c=
for %%s in (%m%)do call:c %%s "%%c%%%%~s" not
for %%s in (%m%)do call:c %%s "%%c:%%~s%%"
echo %c%
exit/b
:c
set s=%~1
if %3 "%s:~1,1%"=="=" call set c=%~2

Explanation: Loops through the list of strings twice (conveniently for likes a string in CSV format). The first time, looks for strings that do not contain an = as the second character, and concatenates them to the result. The second time, looks for strings that do contain an = as the second character, and performs the substitution. (even more conveniently, the substitution is already in Batch format.)

PHP, 116 Bytes
<?foreach($_GET as$i)$i[1]=="="&&strlen($i)==3?$r[]=$i:$s.=$i;foreach($r as$l)$s=str_replace($l[0],$l[2],$s);echo$s;

Online Version

PHP, 89 87 bytes
two versions:
while(a&$s=$argv[++$i])3==strlen($s)&"="==$s[1]?$t[$s[0]]=$s[2]:$m.=$s;echo strtr($m,$t);
while(a&$s=$argv[++$i])preg_match("#^.=.$#",$s)?$t[$s[0]]=$s[2]:$m.=$s;echo strtr($m,$t);

takes input from command line arguments; run with -nr.

loop through arguments creating parameters for strtr
(translation if argument contains =, message else).
perform strtr.

05AB1E, 31 bytes
vy'=åyg3Q&iyˆyS}})øJÁ¨`¹¯KJ.Ás‡

Try it online!
vy              }
  '=åyg3Q&                      # See if it's length 3 with an equals in the mid.
          iyˆyS                 # If so, add to global array, split into chars.
               }
                 )øJÁ¨`         # Transpose, join, and remove the middle =.
                       ¹¯KJ     # Push original input without decryption key.
                           .Ás‡ # Shift stack to the right, swap and transliterate.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Operator that combines sum, product and difference between two numbers
Challenge:
There's a silly puzzle circulating on social networks that reads:
8 + 2 = 16106
5 + 4 = 2091
9 + 6 = ?

Implement a function or operator that, when given two positive integer numbers x and y such that x > y > 0, yields the correct answer as an integer, where the answer's digits are the digits of x * y followed by the digits of x + y followed by the digits of x - y. Very simple.
Rules:

Standard loopholes are disallowed.
This is code-golf so shortest code in bytes wins.
Input data validation is not required. This program may crash or return garbage when given invalid input.
You're allowed to use numeric functions and operators (including integer and floating point, math library functions, and other functions that accept and return numbers).
You're allowed to use a function that returns the number of digits of a number, if applicable.
You're not allowed to use strings or any kind of concatenation anywhere in your code.
The result may be returned or pushed to the stack, whichever applies in the language. The result must be an integer number, not a string.

Sample code:
Dyalog APL:
The following code creates a dyadic operator named X.

X←{(⍺-⍵)+((⍺+⍵)×10*1+⌊10⍟⍺-⍵)+⍺×⍵×10*(2+⌊10⍟⍺+⍵)+⌊10⍟⍺-⍵}

Explanation:

In APL, you evaluate from right to left.
⍺ and ⍵ are the left and right operand, respectively
⌊10⍟⍺-⍵ reads: floor of log10(⍺-⍵). First performs substraction then logarithm then floor. From right to left. log10 is done in order to count the digits of ⍺-⍵ (you must sum 1 afterwards).
⍺×⍵×10*(...) reads: 10 to the (...)th power, multiplied by ⍵, multiplied by ⍺
Hence, ⍺×⍵×10*(2+⌊10⍟⍺+⍵)+⌊10⍟⍺-⍵ is the product, shifted to the left by the sum of the number of digits of the sum and the difference. Multiplying by a power of 10 will shift an integer to the left.
((⍺+⍵)×10*1+⌊10⍟⍺-⍵) is the sum, shifted to the left by the number of digits of the difference.
(⍺-⍵) is the difference. No shifting is necessary here.
X←{...} is how you define an operator in APL.

Examples:
      8 X 2
16106
      5 X 4
2091
      9 X 6
54153

GNU dc:
The following code creates a macro named a:
[sysx10lxly-dseZdsclxly+dsd+Z1+^lxly**10lc^ld*+le+]sa

Explanation:

sx and sy pop an element from the stack and save it on the registers x and y, respectively.
lx and ly load an element from registers x and y respectively and push it to the stack.
d duplicates the last element in the stack.
^ computes the power of two numbers.
Z pops a number and returns its number of digits. This is done because dc has no logarithm function.
[...]sa stores a macro in register a. la loads it. x executes the macro at the top of the stack.

Examples:
8 2 laxn
16106
5 4 laxn
2091
9 6 laxn
54153

I assume conversion from integer to string is invalid?

I think we've had a challenge much like this but don't know what terms would find the dupe.

@AnthonyPham "You're not allowed to use strings or any kind of concatenation anywhere in your code."

Can we take a pair of integers as input?

Can I make a full program instead of a function?

@Locoluis - Does appending integer arrays violate your rule against "any kind of concatenation"? What I'm effectively doing is taking one integer array 2 4 8 and appending another 3 5 to create 2 4 8 3 5 in my answer.

'No strings or concatenation' is a non-observable rule, as such, it's highly discouraged in a challenge.

Does strlen qualify as "a function that returns the number of digits of a number"? There´s an implicit typecast which I cannot avoid; and I doubt that there is any language who has an explicit count_digits function. Also, printing a result implies a typecast to string ... So if strlen should be banned, printing is at least questionable.

JavaScript (ES7), 63 61 59 bytes
Saved 4 bytes thanks to Neil.
(a,b)=>[a*b,a+b,a-b].reduce((p,c)=>p*10**-~Math.log10(c)+c)

<input id=a type=number oninput="c.innerText=((a,b)=>[a*b,a+b,a-b].reduce((p,c)=>p*10**-~Math.log10(c)+c))(+a.value,+b.value)">
<input id=b type=number oninput="c.innerText=((a,b)=>[a*b,a+b,a-b].reduce((p,c)=>p*10**-!Math.log10(c)+c))(+a.value,+b.value)">
<p id=c>

Save a few bytes using 10**-~Math.log10(c). (But +1 for using reduce, of course.)

"ES7" Oh, for the love of coding... They're making another one?

@Feathercrown Yeah, but is it really worse than hearing "Java 9"? Plus it has useful things like async/await and the exponentiation operator **

@ASCII-only ** is really useful, I agree. That should've been in ES6.

C, 79 75 bytes
Thanks to @G B for saving 4 bytes!
#define X for(c=1;(c*=10)<=a
c,d;f(a,b){X+b;);d=c*a*b+a+b;X-b;);a=d*c+a-b;}

Try it online!

Save some bytes by using a define instead of a function: https://tio.run/nexus/c-gcc#JYjBCsIwEETv@YpQEXaTFayoVGL@Iwcvm6SBHBql9Fb67THVgeHNvHqIY8pllE6m9wzB9gaCsv0Zn5ZFoGgSMHlcnfYGTbRBsfKa23On3bCNKmhue6u5LHLiXADFKmTLZ24qQXeMr/JvRzLBQBfceaPrjw@6Ixqx1S8

Bash, 66

2 bytes saved thanks to @chepner.

f()(s=$[$1+$2]
d=$[$1-$2]
echo $[($1*$2*10**${#s}+s)*10**${#d}+d])

Try it online.

It is possible to make this almost two times shorter if you place your variables(s, d and the other one for multiplication that you didn't define) next to each other and evaluate that as an arithmetic expression.

@MaxLawnboy Yes, though that sounds a lot like the banned string concatenation to me.

Identifier names inside $[...] are subject to parameter expansion without the explicit $ (e.g., d instead of $d), saving two characters.

@chepner yep - thanks - I'd missed those.

Found another two; use ((s=$1+$2,d=$1-$2)) to intialize the two variables.

EXCEL, 61 Bytes
=A1-B1+(A1+B1)*10^LEN(A1-B1)+A1*B1*10^(LEN(A1-B1)+LEN(A1+B1))

Excel, 18 Bytes not valid
=A1*B1&A1+B1&A1-B1

Stacked, 36 bytes
,@A$(*+-){!A...n!}"!{%y#'10\^x*y+}#\

Try it online!
Previously: ,@A$(-+*){!A...n!}"!:inits$#'"!$summap:pop@.10\^1\,\*sum
I'm going to try to squeeze out a byte or two before writing an explanation. (#' = size of, and " is "do on each", no strings attached here.)
Noncompeting at 26 bytes: $(*+-)#!!:{%y#'10\^x*y+}#\.

TI-Basic, 34 33 bytes
Prompt A,B
A-B+(A+B)10^(1+int(log(A-B
Ans+AB10^(1+int(log(Ans

I think Prompt A,B should also work

@ConorO'Brien You're right!

GNU dc, 36
Defines a macro m that takes the top two members of the stack, applies the macro and leaves the result on the stack (as per the example in the question):
[sadsbla-dZAr^lalb+*+dZAr^lalb**+]sm

Try it online.

Perl 6,  81 61  58 bytes
->\x,\y{($/=($/=x- y)+(x+y)*({10**$++}...*>$/).tail)+x*y*({10**$++}...*>$/).tail}

Try it
->\x,\y{(x*y,x+y,x- y).reduce:{$^a*10**Int(1+log10($^b))+$b}}

Try it
->\x,\y{[[&({$^a*10**Int(1+$^b.log10)+$b})]] x*y,x+y,x- y}

Try it

Not knowing Perl 6, I was slightly surprised to discover that x-y is a valid identifier.

Jelly, 27 bytes
+,ạ,.1Fl⁵Ḟ‘€Ṛ+\⁵*
ạ,+,×Fæ.ç

Defines a dyadic link / function, callable with ç. Takes two integers as input and returns an integer. It has the added bonus of being able to take x<y or x>y by using absolute difference.
Try it online!
Explanation:
+,ạ,.1Fl⁵Ḟ‘€Ṛ+\⁵* -- Create link which computes what order of magnitude
                        to multiply the difference, sum, and product by
ạ,+,×Fæ.ç         -- Main link, applies this using dot product

Details:
+,ạ,.1Fl⁵Ḟ‘€Ṛ+\⁵* -- Create dyadic like which does the following:
       l⁵Ḟ‘       -- Create operation which computes number of digits
                       (log base 10 (⁵ is the literal 10), floored, incremented)
           €      -- Apply this to each element in
+,ạ,.1F           -- ... the list [sum,difference,.1]
            R     -- Reverse the list
             +\   -- Add up first n elements to get list.
               ⁵* -- Raise 10 (⁵ is literal 10) to the power of each element

ạ,+,×Fæ.ç         -- Main link, applies above link
ạ,+,×F            -- The list [difference, sum, product]
      æ.          -- Dot product (multiply corresponding elements) with
        ç         -- The above link.

PHP, 79 75 bytes
two versions:
[,$a,$b]=$argv;echo(10**strlen($s=$a+$b)*$a*$b+$s)*10**strlen($d=$a-$b)+$d;
[,$a,$b]=$argv;echo(10**strlen($a+$b)*$a*$b+$a+$b)*10**strlen($a-$b)+$a-$b;

takes input from command line arguments; run with -r.
I guess strlen qualifies as "function that returns the number of digits",
although it uses the number as a string. Let me know if not.

'You're not allowed to use strings or any kind of concatenation anywhere in your code.', so I don't think strlen is valid.

@numbermaniac Let the OP decide. Imo the restriction was to force the solutions to create one result instead of just printing three results after each other. Everything beyond that is nitpicking.

C (gcc), 70 bytes
#define _ for(c=1;a+b>=(c*=10););d=c*d+a-(b=-b);
c,d;f(a,b){d=a*b;_ _}

Try it online!
based on Steadybox answer, putting everything in a macro to golf it a little more.
(Note: assigning the result to d instead of a works, unexpectedly. I had a look at the generated assembly code and it seems to be ok.)

Haskell, 54 bytes
a%0=a
a%b=10*a%div b 10+mod b 10
a#b=(a*b)%(a+b)%(a-b)

The puzzle is implemented via an infix function #, e.g. 8#2 = 16106. The other function, %, defines base-10 concatenation (assuming the RHS is greater than 0).

Dyalog APL, 31 bytes
{a⊥⍨10*1+⌊10⍟a←(⍺×⍵)(⍺+⍵)(⍺-⍵)}
based on the sample APL code from the problem statement

PHP, 87 Bytes
[,$a,$b]=$argv;echo($s=$a-$b)+($t=$a+$b)*10**($l=strlen($s))+$a*$b*10**($l+strlen($t));

and a not valid solution for 37 Bytes
[,$a,$b]=$argv;echo$a*$b,$a+$b,$a-$b;

Ruby, 61 bytes
->a,b{[a*b,a+b,a-b].reduce{|x,y|z=y;x*=10while(z>z/=10);x+y}}

Which suspiciously looks a lot like this Javascript answer, but without using a logarithm.

R (3.3.1), 104 bytes
function(x,y)Reduce(function(p,q)p*10^(floor(log10(q)+1))+q,lapply(c(`*`,`+`,`-`),function(z)z(x,y)),0)

returns an anonymous function.
This is my first golfing attempt, so any feedback is appreciated.

I'd say to try to avoid defining functions via the reserved word 'function' if at all possible, it uses up a lot of bytes.  Just do the computation.

Python, 92 91 Chars
def g(x,y):
    l=lambda x,i=0:l(x/10,i+1)if x else 10**i
    a=x-y
    a+=(x+y)*l(a)
    return x*y*l(a)+a

Thanks to Wizards suggestion;)

Welcome to the site! You don't need the space between ) and if.

REXX, 70 bytes
f:arg a b
c=a-b
c=(a+b)*10**length(c)+c
c=a*b*10**length(c)+c
return c

Of course, the native way would be much shorter:
f:arg a b
return a*b||a+b||a-b

Python 2.7, 109 96 bytes
import math
a=lambda n:10**int(math.log10(10*n))
b,c=input()
d=b-c+(b+c)*a(b-c)
print d+b*c*a(d)

Corrected after following rules of contest.
Credits to mbomb007 for bringing down the code from 109 bytes to 96 bytes

From the rules of this challenge -- •You're not allowed to use strings or any kind of concatenation anywhere in your code.

You can save some bytes by making a a lambda. a=lambda n:10**int(.... You can also do b,c=input(), giving your two inputs separated by a comma.

@mbomb007 b,c=input() gives TypeError: 'int' object is not iterable. I've tried it.
And the lambda function won't save bytes because I'm calling the function twice in the code. tried that too. :(

@KoishoreRoy I don't think you get what I mean. 96 bytes

PowerShell, 88 Bytes
param($x,$y)$l=2;if(($a=$x+$y)-gt9){$l++};($x*$y)*[math]::Pow(10,$l)+$a*10+$x-$y

PowerShell does not have a to the power operator which does not help. Also can't count the length of an integer unless you count it as a string, which we can not do, so I check to see if it is -gt 9 to get know the length. Likely could be more terse but I have to get back to work.

J, 25 bytes
X=.10#.[:;10#.inv&.>*;+;-

*;+;- Box the results of each operation.
10#.inv&.> Convert each result into an array of base-10 digits. (inv is ^:_1)
[:; Unbox and join the arrays.
10#. Convert array of base-10 digits into an integer.
X=. define the above as the operator X.

Results:
   8 X 2
16106
   5 X 4
2091
   9 X 6
54153

You don't need X=.

@Cyoce - the sample APL code in the challenge defines an operator. I'm pretty sure we're supposed to define a reusable operator for this challenge.

"3. [:; Unbox and join the arrays." - "You're not allowed to use strings or any kind of concatenation anywhere in your code."

@ngn - Please expand on your comment. At no point are strings used.

I just wanted to point out that "join" ("link"?) might constitute a "kind of concatenation", though I'm not very familiar with J, and I'm not sure how to interpret the problem statement in this case. My own solution raises similar questions - I use stranding (juxtaposition of nouns in APL forms a vector) which might be the same as J's "link" but without a glyph to represent it.

Ahh. Interesting read of "any kind of concatenation." I suppose we should ask the challenge creator. What I'm effectively doing is taking one integer array 2 4 8 and appending another 3 5 to create 2 4 8 3 5.

Any reason you use^:_1 in your solution butinv in your explanation?

Typo. I messed up somewhere in my edits. 25 bytes is a count with inv.

Mathematica, 67 bytes
c=Ceiling;l=Log10;#-#2+(#+#2)10^(c@l[#-#2]/. 0->1)+10^c@l[2#]10#2#&

Takes x-y, then takes the log10 of x-y, rounds it up, calculates 10 to the power of that and then multiplies it by x+y. But we also need to consider log10(x-y) being 0, so we replace 0 with 1. Then we take the log10 of 2x, rounded up, plus 1, and find 10 to the power of that. Multiply that by xy, and add that on.

05AB1E, 23 22 16 bytes
-Dg°¹²+*Dg°¹²**O

Try it online!
We could have saved a few bytes if we'd been allowed to use strings in the program (but not in calculations) by looping over a string containing the operations "-+*", as the code performed for each operation is the same.
Of course, if we'd been allowed to use concatenation we'd saved a lot more.

R, 64 bytes
x=scan();(b=(a=diff(-x))+10^nchar(a)*sum(x))+10^nchar(b)*prod(x)

Usage:
> x=scan();(b=(a=diff(-x))+10^nchar(a)*sum(x))+10^nchar(b)*prod(x)
1: 8 2
3:
Read 2 items
[1] 16106


text:
Pizza, Pizza, Deep Dish Pizza!
April 5th is National Deep DIsh Pizza Day, the theme of this challenge. Given a positive integer n (n is greater than 0), create an ASCII deep dish pizza. Actual deep dish pizza shown:

As you can see, there is a layer of crust on the bottom and surrounding the rest of the pizza.
How to make the pizza
The crust is made of two layers. The first layer will be n tall and n*3 long. Length is the number of characters (including spaces) in the highest line. So given n is 1, the first layer would look like this:
\_/  1 character tall
 3 characters long

If n is two:
\    /   2 characters tall
 \__/
  6 characters long

Now for the second layer of the crust. It will go outside the first, inner crust so therefore, it will be n+2 characters tall and (n*3)+6) characters long. Given n is one:
\       /  3 characters tall
 \     /
  \___/
   9 characters long (3 underscores, 3 slashes on either side)

If n is two:
\          / 4 characters high
 \        /
  \      /
   \____/
    12 characters long

You would then match up the two highest pairs of \/ with each other for the inner and outer crust. In n is 1:
\ \   / /
 \ \_/ /
  \___/

If done correctly, it would look like a V without the tops with a one character difference between each layer. Speaking of tops, the crust will be joined together by a pair of /\, separated by a line of underscores (n*3)+2 long to complete the crust and pizza.
Examples
If n is 1:
/\_____/\
\ \   / /
 \ \_/ /
  \___/

n is 2:
/\________/\
\ \      / /
 \ \    / /
  \ \__/ /
   \____/

n is 3:
/\___________/\
\ \         / /
 \ \       / /
  \ \     / /
   \ \___/ /
    \_____/

Winning Criterion
This is code-golf, so the shortest code in bytes wins!

Something looks off in the inner crust examples. The one for n=1 seems to small, the one for n=2 looks like the inner crust from the final n=1 example, etc...

Can we use a - instead of a _?

@Okx No you may not

Happy Deep Dish Pizza Day!

Charcoal, 35 bytes
Ｎθ←_←×_θ↖θ↖²Ｍ→/Ｐ×_⁺²×²θ↘θ↘¹\×_θ‖ＢＯθ

Try it online! Link is to verbose version of code. Explanation:
Ｎθ

Input the size of the pizza.
←_←×_θ

Print part of the outer crust base.
↖θ↖²

Print the outer crust left side.
Ｍ→/Ｐ×_⁺²×²θ

Print part of the top crust.
↘θ↘¹\

Print the inner crust left side.
×_θ

Print part of the inner crust base.
‖ＢＯθ

Reflect to complete the pizza.
Note that modern additions to Charcoal shrink the size down to 31 bytes:
Ｎθ←×_⊕θ↖θ↖²Ｍ→/Ｐ×_⊗⊕θ↘⊕θ\×_θ‖ＢＯθ

Try it online! Link is to verbose version of code.

Not sure if I accidentally introduced a bug, but the filling appears not to work properly?

@ASCII-only Filling? The test case at least looks right to me; what do you think isn't working?

I think it doesn't work with inputs of 4 and up?

@ASCII-only Huh, how did I overlook that...

JavaScript (ES6), 136 bytes

f=
n=>"/\\"+(r=s=>s[0][0].repeat(n-1)+s)`_`+r`_`+r`___/\\
`+r` `.replace(/ /g,"$`\\ \\$`   $'$'$'/ /\n")+r` \\ \\`+r`_/ /
`+r`  \\`+r`___/`
<input type=number min=1 oninput=o.textContent=f(this.value)>

The whole pizza is very repetitious so the r function (designed as a tagged template literal) repeats the first character of its input n times. This handles the top and bottom two lines of the pizza. The middle is repeated by replacing a string of blanks; the $` and $' subsitutions automatically correspond to increasing and decreasing numbers of blanks thus positioning the \ \ and / / appropriately.

JavaScript (ES6), 205 bytes

This is my first ascii-art post!
Add a f= at the beginning and invoke like f(arg).
n=>{a=[];w=" ";u="_";t=`/\\${u.repeat(n*3+2)}/\\
`;for(i=0;i<n+1;i++){c=i==n?u:w;a.push(`${w.repeat(i)}\\ \\${c.repeat((n+1-i*2)+n+(n-1))}/ /
`)};return [t,...a,`${w.repeat(i)}\\${u.repeat(n+2)}/`].join``}

Note: All line breaks are necessary!

f=n=>{a=[];w=" ";u="_";t=`/\\${u.repeat(n*3+2)}/\\
`;for(i=0;i<n+1;i++){c=i==n?u:w;a.push(`${w.repeat(i)}\\ \\${c.repeat((n+1-i*2)+n+(n-1))}/ /
`)};return [t,...a,`${w.repeat(i)}\\${u.repeat(n+2)}/`].join``}

document.querySelector("#elem").innerHTML = f(+prompt("Enter a Number"));

Explanation
The code first declares an Array a. It then declares w and u having the value of whitespace and underscore respectively. Then, it declares a String variable to hold the value of the crust (which can be computed by /\+(n*3+2 underscores)+/\, as mentioned in the Challenge). After that, with a for loop and a Template Literal, the middle of the pizza is created (with each layer having i whitespaces at the starting and (n+1-i*2)+n+(n-1) whitespaces between \ \ and / /, where i represents the index of for loop). At the last, the bottom most part of the pizza is created ((i whitespaces)+\+(n+2 underscores)+/). All parts are joined together and output(ted).

If for some reason the snippet does not display the ASCII art correctly, have a look here.
Happy Deep Dish Pizza Day to everyone!

Python 2, 153 151 bytes
Try it online
n=input()
a=' '*n
b='_'*n
print'/\\__'+b*3+'/\\'
i=0
exec"print' '*i+'\ \\\\'+' '*(3*n-2*i)+'/ /';i+=1;"*n
print a+'\ \\'+b+'/ /'
print a+' \\_'+b+'_/'

-2 bytes by substituting repeated values with variables thanks to @KoishoreRoy

Instead of print' '*=~n+'\\'+'_'*-~n+'_/' can you not write print' '*i+' \\_'+'_'*n+'_/'? (Or n instead of i, but I was copying the previous line.)

@Neil I can't change -~n to i,  because at this point i==n. But second change is good. Also I shortended -~n, thanks to your idea

I wasn't simply changing -~n to i, because I was adding the space. (But you seem to have worked that out on your own anyway. Also I already noted that n and i are the same at this point.)

MATLAB, 333 bytes
(Lazy-ish attempt)
function t(n);p=@(q)fprintf(q);s=@(x)p(' ');r=@()p('/ /');l=@()p('\\ \\');f=@()p('/');b=@()p('\\');u=@(x)p('_');h=@()p('/\\');e=@()p('\n');h();arrayfun(u,1:3*n+2);h();e();for i=1:n;arrayfun(s,1:i-1);l();arrayfun(s,1:3*n-2*(i-1));r();e();end;arrayfun(s,1:n);l();arrayfun(u,1:n);r();e();arrayfun(s,1:n+1);b();arrayfun(u,1:n+2);f();e();

Formatted:
function d(n)
p=@(q)fprintf(q);
s=@(x)p(' ');
r=@()p('/ /');
l=@()p('\\ \\');
f=@()p('/');
b=@()p('\\');
u=@(x)p('_');
h=@()p('/\\');
e=@()p('\n');
h();arrayfun(u,1:3*n+2);h();e();
for i=1:n
arrayfun(s,1:i-1); l(); arrayfun(s,1:3*n-2*(i-1)); r();e();
end
arrayfun(s,1:n); l(); arrayfun(u,1:n); r();e();
arrayfun(s,1:n+1); b(); arrayfun(u,1:n+2); f();e();

Basic idea is I have function handles to print everything, and then I just pretty much brute-force it. The one for loop is for the n layers between the very top and the bottom of the inside layer. The repetition of  (spaces) and _ is done using arrayfun, with array inputs.
Will try to think of more interesting ways to do this if I get more time later.

Try it online! (in Octave)

Charcoal, 54 52 bytes
Ａ⁺Ｎ²β↖Ｍ↓↙¹Ｍ→↘βＭ↑×_β↗βＭ←↖¹Ｍ↓↙βＭ↑←×_⁺β±²↖βＭ↘Ｍ→×_⁺×β³±⁴

Explanation:
Ａ⁺Ｎ²β       Assign input + 2 to the variable β
↖             Move up and left one, printing a \
Ｍ↓           Move pointer down one
↙¹            Move down and left one, printing a /
Ｍ→           Move pointer right one
↘β            Move down and right β times
Ｍ↑           Move pointer up
×_β           Write underscores β times
↗β            Move up and right β times
Ｍ←           Move pointer right one
↖¹           Move up and left one
Ｍ↓           Move pointer down one
↙β           Move down and right β times
Ｍ↑           Move up one
←             Set direction to left
×_⁺β±²        Write underscores β - 2 times
↖β            Move up and left β times
Ｍ↘           Move down and right one
Ｍ→           Move right one
×_⁺×β³±⁴      Write underscores (β * 3) - 4 times

My previous answer was in Retina, a language I haven't posted an answer to before. Now, you have an answer in Charcoal, which I haven't posted an answer to before.
Try it online!

PHP, 209 200 137 135 bytes
finally beating JS :)
echo($f=str_pad)("/\\",1+3*$x=$n=1+$argn,_),"/\\
";for(;$n;)echo$f("\\ \\",2*$n+$x," _"[!--$n]),"/ /
",$p.=" ";echo$f("\\",2+$x,_),"/";

Takes input from STDIN; run with -nR or order a family pizza.
breakdown
// print top
echo($f=str_pad)("/\\",1+3*$x=$n=1+$argn,_),"/\\\n";
// loop N+1 times
for(;$n;)
    // print current line and left padding for next line
    echo$f("\\ \\",2*$n+$x," _"[!--$n]),"/ /\n",$p.=" ";
// print bottom
echo$f("\\",2+$x,_),"/";

Batch, 200 bytes
@set l=@for /l %%i in (1,1,%1)do @call
@set t=
@set s=
%l%set s=___%%s%%
@echo /\_%s%_/\
%l%echo %%t%%\ \%%s:_= %%/ /&call set t= %%t%%&call set s=%%s:~2%%
@echo %t%\ \%s%/ /
@echo %t% \_%s%_/

t contains the left indent while s contains the inside; its _s are subsituted with spaces on the middle rows. l just exists to avoid some repetition.

Vyxal, 59 bytes
k/₴3*⇧\_*k/+,›(n`\ \\`꘍₴nεd+n⁰=` _`$i*₴`/ /`,)›\\꘍₴⇧\_*\/+,

Try it Online!

V, 57 bytes
i\ \´ / /ÙãxX2r_>>Ù>>lxxE2r_ÀñHãyêP>GÄXã2é ñHÄÒ_R/\$h.

Try it online!
Since, (as usual) this contains lots of nasty non-ASCII characters and unprintables, here is a hexdump:
00000000: 695c 205c b420 2f20 2f1b d9e3 7858 3272  i\ \. / /...xX2r
00000010: 5f3e 3ed9 3e3e 6c78 7845 3272 5fc0 adf1  _>>.>>lxxE2r_...
00000020: 48e3 79ea 503e 47c4 58e3 32e9 20f1 48c4  H.y.P>G.X.2. .H.
00000030: d25f 522f 5c1b 2468 2e                   ._R/\.$h.

I'll post a more detailed explanation soon, but here is a high level overview:
i\ \´ / /ÙãxX2r_>>Ù>>lxxE2r_
"Create
"\ \    / /
" \ \__/ /
"  \____/
"This can probably be compressed a lot more

ÀñHãyêP>GÄXã2é ñ
"*arg1 times*, expand the pizza slice

HÄÒ_R/\$h.
"Add the crust

CJam, 74 Bytes
Way too long. I'm going to try another approach.
"/\\"ri:M3*:A2+'_*1$NL{"\ \\"AS*"/ /"3$S+A((:A;N\}M*4$A'_*4$N4$S'\A2+'_*'/

Builds the string line-by line. Nothing too crazy.

CJam, 89 bytes
Well, this is actually longer than my other solution at the moment, but I think it's more golfable:
ri{:T)_S*a*ee_{~'\t}%TS*aTU+*'_f+@{~'/t}%W%++z}:K~2S*f{\+}T1:U+K..e>"/\\"'_T3*(*1$++a\+N*

Stack trace:
"2" ; r
2 ; i
2 {:T)_S*a*ee_{~'\t}%TS*aTU+*'_f+@{~'/t}%W%++z} ; {}
2 {:T)_S*a*ee_{~'\t}%TS*aTU+*'_f+@{~'/t}%W%++z} ; :K
2 ; ~
2 ; :T
3 ; )
3 3 ; _
3 3 " " ; S
3 "   " ; *
3 ["   "] ; a
["   " "   " "   "] *
[[0 "   "] [1 "   "] [2 "   "]] ; ee
[[0 "   "] [1 "   "] [2 "   "]] [[0 "   "] [1 "   "] [2 "   "]] ; _
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ; {~'\t}%
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] 2 ; T
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] 2 " " ; S
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] "  " ; *
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  "] ; a
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  "] 2 ; T
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  "] 2 0 ; U
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  "] 2 ; +
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  " "  "] ; *
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  " "  "] '_ ; '_
[[0 "   "] [1 "   "] [2 "   "]] ["\  " " \ " "  \\"] ["  _" "  _"] ; f+
["\  " " \ " "  \\"] ["  _" "  _"] [[0 "   "] [1 "   "] [2 "   "]] ; @
["\  " " \ " "  \\"] ["  _" "  _"] ["/  " " / " "  /"] ; {~'/t}%
["\  " " \ " "  \\"] ["  _" "  _"] ["  /" " / " "/  "] ; W%
["\  " " \ " "  \\" "  _" "  _" "  /" " / " "/  "] ; ++
["\      /" " \    / " "  \__/  "] ; z
["\      /" " \    / " "  \__/  "] "  " ; 2S*
["  \      /" "   \    / " "    \__/  "] ; f{\+}
["  \      /" "   \    / " "    \__/  "] 2 ; T
["  \      /" "   \    / " "    \__/  "] 2 1 ; 1
["  \      /" "   \    / " "    \__/  "] 2 1 ; :U
["  \      /" "   \    / " "    \__/  "] 3 ; +
["  \      /" "   \    / " "    \__/  "] ["\          /" " \        / " "  \      /  " "   \____/   "] ; K
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] ; ..e>
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" ; "/\\"
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" '_ ; '_
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" '_ 3 ; T
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" '_ 9 ; 3*
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" '_ 8 ; (
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" "________" ; *
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\\" "________" "/\\" ; 1$
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] "/\________/\\" ; ++
["\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] ["/\________/\\"] ; a
["/\________/\\" "\ \      / /" " \ \    / / " "  \ \__/ /  " "   \____/   "] ; \+
"/\________/\
\ \      / /
 \ \    / /
  \ \__/ /
   \____/   " ; N*
; [implicit output]

C (clang), 211 215 bytes
i,l;f(n){l=n*3+6;char u[l];for(i=0;i<l;)u[i++]='_';u[l-1]=i=0;printf("/\\%.*s/\\\n",l-4,u);for(;i<n;i++)printf("%*s\\ \\%*.s/ /\n",i,"",n*3-(2*i),"");printf("%*.s\\ \\%.*s/ /\n%*.s\\%.*s/\n",i,"",n,u,i+1,"",n+2,u);}

Try it online!
Pretty Code:
i,l;
f(n) {
    l = n*3+6;
    char u[l];

    // Initialize u[] with a full line of underscores,
    for (i=0;i<l;)
        u[i++] = '_';

    // Make sure the string ends in a valid way
    u[l] = i = 0;

    /* Print the crust 'top'
     * l-4 dashes are needed because '/\/\'
     * %.*s notation to pad (l-4) bytes of the underscore string
     */
    printf("/\\%.*s/\\\n", l-4,u);

    /* Print n rows of just 'walls' \ \  / /
     * each row has i=0++ leading spaces,
     * and each row has n*3-(2i) center spaces
     */
    for(; i<n; i++)
        printf("%*s\\ \\%*.s/ /\n", i,"", n*3-(2*i), "");

    /* Print i spaces, '\ \', n underlines, '/ /'
     * then i+1 spaces, '\', n+2 underlines, and '/'
     */
    printf("%*.s\\ \\%.*s/ /\n%*.s\\%.*s/\n",i,"",n,u,i+1,"",n+2,u);
}

Edits:

removed s[l] and associated by switching from %.s notation to %.s
added function wrapper for compliance & try it online

197 bytes


text:
That's so meta!
Your Challenge
You must write a program/function etc. that takes a domain name of a StackExchange site and outputs the domain for the meta version of the site passed to it. Examples:
stackoverflow.com => meta.stackoverflow.com
codegolf.stackexchange.com => codegolf.meta.stackexchange.com
mathoverflow.net => meta.mathoverflow.net
codereview.stackexchange.com => codereview.meta.stackexchange.com

Note: Subdomains are added to meta.stackexchange.com. Separate domains have meta. prepended. You don't need to worry about stackexchange.com or meta.stackexchange.com passed.
Shortest answer in bytes wins!

Why post basically the same question within 10 mins? I know that ones a polyglot but is there really any purpose or difference from the other one?

It just seems to me as though its a rep grab.

Could you provide the specification rather than just saying it is defined by SE? Or a link to the logic used?

@JonathanAllan  Subdomains are added to meta.stackexchange.com. Separate domains have meta. prepended.

-1 for no specification.

I'm fairly sure there are exceptions not covered by the examples. E.g. isn't meta.stackexchange.com it's own meta site?

Retina, 17
\w+\.\w+$
meta.$&

Try it online.

GNU Sed, 20
Score includes +1 for use of -r.
s/\w+\.\w+$/meta.&/

Try it online.

JavaScript (ES6), 41 40 34 32 bytes
s=>s.replace(/\w+\.\w+$/,'meta.$&')

<input id=a oninput="b.innerText=a.value.replace(/\w+\.\w+$/,'meta.$&')"/>
<p id=b />

Pip, 21 20 bytes
aR`\w+.\w+$``meta.&`

Try it online!
Matches the last two runs of word characters (separated by some other character), to which it prepends meta..

Python 2, 57 54 bytes
l=input().split(".");l[:-2]+=["meta"];print".".join(l)

Try it online!
Split on periods, insert "meta" before the second item from the end, join the list again on periods and print.

JS (ES6), 59 bytes
m="meta.",a=>a.split(".").length-2?a.replace(/\./,"."+m):m+a

If the string passed to the function expression has more than 1 . in it, a .meta. is inserted in the first .. Otherwise, meta. is appended to that string.

Jelly, 22 19 bytes
ṣ”.ṙ-2;“£2v»W¤ṙ2j”.

Try it online!
How?
ṣ”.ṙ-2;“£2v»W¤ṙ2j”. - Main link: domain string
ṣ”.                 - split at occurrences of '.'
   ṙ-2              - rotate right by -2
             ¤      - nilad followed by link(s) as a nilad
       “£2v»        -     dictionary lookup of "meta"
            W       -     wrap in a list
      ;             - concatenate
              r2    - rotate right by 2
                j”. - join with '.'s

PHP, 48 Bytes
echo preg_filter("#\w+\.\w+$#","meta.$0",$argn);

but we should better do it like this
echo strstr($argn,"meta.")?$argn:preg_filter("#\w+\.\w+$#","meta.$0",$argn);


text:
100 Day Countdown
It is common to start countdowns 100 days prior to an event, probably because of our base 10 system. Examples of this can be found everywhere:

100 days until your birthday
100 days until the wedding
100 days until the election
100 days until our graduation
100 days until her due date
100 days until football season
100 days until you get the Fanatic badge

You get the picture. It seems that the 100th day before an event is second place only to the actual event. So for this challenge, I need to know what the date will be in 100 days, so that I can determine what I should start counting down too.
Input
No input
Output
The date 100 days from the current date based on the standard Gregorian Calendar (Make sure to account for leap years). Output is flexible as long as the date format is human read-able (eg 2016-10-8, 10-8-16, [ 2016, 10, 8 ], 10/8/16 12:00:00 AM).
Winning
Code golf: shortest code in bytes

Examples
100 days from today (Apr 5th, 2017) is Friday, July 14 2017.
Current                Future
-------                ------
01/01/2001 +100        04/11/2001
01/01/2004 +100        04/10/2004
01/01/1900 +100        04/11/1900
01/01/2000 +100        04/10/2000

07/04/2017 +100        10/12/2017
10/31/2017 +100        02/08/2018
12/25/2017 +100        04/04/2018

08/29/1941 +100        12/07/1941
06/03/2001 +100        09/11/2001

Can I add the current time to the output?

@Titus no, just the future date

Most answers include a date and time now, I think this should be allowed.

@GB When you output the future date, the format is flexible (could include timestamp) as long as it is human readable. However, current time/date is not acceptable.

"Because of our bas 10 system"?  No, if we counted in binary, we'd likely count down from 100 - except that would take only four days, rather than a hundred...

10/8/16 is not human readable, it can be 2010-08-16, 2016-08-10 or 2016-10-08. Please avoid this date format

@12431234123412341234123 this format is perfectly readable for me (in fact, it's pretty much a de-facto standard where I live). It all depends on where you're from.

@CássioRenan It can not be, because it can be read in 3 different ways. it is not possible to be readable without more informations. (or from where do you know which of this 3 possible formats are used)

@12431234123412341234123 that's not a good point. In fact, 2010-08-16, 2016-08-10 and 2016-10-08 are also ambiguous. In my case they're much worse: Since there's no date format where I live that starts with a year, I have no way of knowing whether these formats are day/month or month/day. Something being human-readable implies language/convention. In the case of a flexible question such as this one, this means you have to specify the format, along with the date, much like you would do with other types of data. Forbidding a format just because you cannot read it is just rude.

@CássioRenan The problem is not that i can not read this format, the problem is there are 3 different used formats which all lock the same. And no one use YYYY-DD-MM (it is also the only format which make sense, since it is complete Bigendian and not mixed). To the language language convention, there are english speaking countrys which are DD/MM/YY used mostly and other english speaking where MM/DD/YY used mostly, so there is no convention which you can count on (so this format is not distinct and therefor can not be readable).

Excel, 10
=NOW()+100

Demonstration

Wow it can be that easy? xD

Also works in Google Sheets.

Excel is always good for code golf that involves parsing dates.

Is there a language pack for excel in which the NOW function is spelled out with just two letters? In that case, you could save 1 byte.

Yep, Dutch has 'nu()'

Do =100+now( also work? it works in LO-calc

@12431234123412341234123 the closing bracket is required, at least on Excel 2016.

Although, per date part only, you'd have to use =TODAY()+100 or =TEXT(NOW()+100,"MM/dd/yyyy")

As i already wrote, this format is not readable, not for humans nor for machines.

Bash, 17 16 15 14 13 bytes
date -d100day

It turns out the date command takes some pretty flexible input for relative timings. You can also do things like 1 year, 1 week ago, yesterday, etc. It's pretty cool.
-1 byte by realizing that bash does not care about grammar.
-1 byte because the space between 100 and day is unnecessary.
-1 byte because I don't need quotes anymore because I don't have a space in the string.
-1 byte by removing the space after -d (thanks ASCII-only!)

New favorite command +1

@NonlinearFruit Hah, yeah, it's probably one of my favorite commands. Thanks!

You don't need the space after -d

@ASCII-only Oh, okay. Thanks!

PowerShell, 10 bytes
(date)+1e2

Thanks to ConnorLSW for the +1e2 trick.
It appears that doubles (1e2 is a double) are also added as days.
Previous version, 12 bytes:
(date)+"100"

Apparently you can add strings to dates in PowerShell. The string "100" is converted into a 100 days-TimeSpan.

Ok don't ask me why, but even though (date)+100 doesn't work, (date)+1e2 does... I guess 1e2 is actually a double whereas 100 is a number until it's compiled, i.e. you can't call 100.GetType() but you can 1e2.GetType() - that's -2 and brings us to a draw with Excel!

@ConnorLSW If it help or adds to the confusion 100 is seen as adding 100 ticks where as the string "100" is taken as days. Both are valid PS but only one does what we need.

@Matt 1e6 is still a number and is added as days though?

That is interesting then. Perhaps there is more going on under the hood where that number reaches over a threshold.... I do not know

I think it's somehow related to the old DATE type which is an 8-byte floating point number with days being represented as whole number increments. I guess that's what Excel is using.

seems like (date)+[double]100 also adds as days, so I think @DankoDurbić is totally right, (date)+[int]100 doesn't, oh Microsoft.

Mediawiki, 19bytes
{{#time:r|+100day}}

You may try it with wikipedia's sandbox

Welcome to PPCG!

PHP, 28 bytes
<?=date(Y_m_d,time()+864e4);

human readable version, 35 bytes:
<?=date(Y_m_d,strtotime("100day"));

almost readable, 34 bytes:
<?=date(Y_m_d,strtotime(1e2.day));

-4 bytes if also printing the time is accepted: replace Y_m_d with r or c.
It´s National Holiday in France in 100 days.

The underscores made me do "Why underscores, is it a constant? No, a string OH WAIT 'SPACES'!!" Clever.

@Martijn Turn on E_NOTICE and You´ll know: Y_m_d is an undefined constant and PHP assumes a string. This works with any valid word (including all function names) apart from keywords, predefined constants and case insensitive true, false and null.

Ruby, 16 bytes
p Time.now+864e4

Try it online!

Was going to answer this, nice. But I get different results for 864e4 and 8640000 and I don't quite know why. I blame TIO. EDIT: when you use p, the two values produce a different result. But when you use puts, they're the same.

I don't understand, I get the same result with both. Can you post an example? Maybe it depends on the locale?

p Time.now+864e4 is around 4 days behind p Time.now+8640000 on TIO. I tried it multiple times. However, if you use puts, this distinction doesn't exist. I don't really know if my locale matters, US East should be pretty normal :P I guess I'll try running it on my own PC when I get home.

Javascript, 29 26 25 bytes
Saved 3 bytes thanks to @ASCII-only!
Saved 1 byte thanks to @JohanKarlsson
new Date(+new Date+864e7)

document.body.innerHTML=new Date(+new Date+864e7)

You can use 864e7 instead of 864*10e6

You can save 1 byte by using +new Date instead of Date.now()

This is a snippet. You need to include console.log

SQL (PostgreSQL), 19 Bytes
SELECT now()+'100d'

Vim, 27 bytes
:r!date "+\%F" -d"+100 day"

try it online!

Edit: Removed unnecessary space char.

If you're using Linux date, the one on this page is date -d100day, not sure if it will help though

I test it with :r!date +\%F -d100day this also works (at least on my pc (C)), but is the same as HyperNeutrino already use in bash.

Uh, you can save bytes by just eliminating vim and doing it in bash.

MATL, 9 bytes
Z'100+1XO

Output format is 15-Jul-2017 (which I find most readable). Change 1XO to 2XO to get the format used in the examples, 07/15/17.
Try it online!
Explanation
Z'      % Push current date and time as a serial date number
100+    % Add 100
1XO     % Convert to string with format 'dd-mmm-yyyy'. Implicitly display

SQL (Microsoft), 35 31 bytes
SELECT DATEADD(D,100,GETDATE())

You can use d instead of DAY and remove the spaces inside DATEADD.

Even I didn't know you could use d. I use dd or day in practice. I just tried it and it worked.

Mathematica, 26 21 bytes
-5 bytes thanks to @KiranLinsuain!
Today+Quantity@"100d"

If including the time is permitted, then we can save 2 bytes:
Now+Quantity@"100d"

"Now + Quantity["100d"]" cuts it down quite a bit, but may not always work on all versions.

C#, 103 97 bytes
Thanks to raznagul for saving 6 bytes!
using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d"));}}

Full program which reads the current date, adds 100 days and displays the result in M/d/YYYY format.
You can change the date format by adding a few more bytes:
using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d-M-yyyy"));}}

To eliminate boilerplate code - C# isn't exactly known to be very compact - an anonymous function can be used:
C# lambda, 49 43 bytes
()=>DateTime.Now.AddDays(100).ToString("d")

Full program:
using System;

class P
{
    static void Main()
    {
        Func<string> f =
        ()=>DateTime.Now.AddDays(100).ToString("d");

        Console.WriteLine(f());
    }
}

For the full program I think you can write System.DateTime.Now... to avoid "using System;"

@Taemyr: That would be longer, as he also needs it for Console.Write.

@adrianmp: You can save save 6 bytes by using .ToString("d") instead of .ToShortDateString().

Java 8, 77, 61 bytes
()->System.out.print(java.time.LocalDate.now().plusDays(100))

Try it online!

Is there a reason you don't include the boilerplate? (ie 'class A{public static. . .') For Java, I believe at is necessary for a full program. You could do a lambda ()->java.time.LocalDate.now().plusDays(100).

I had that before editing my answer. It was 94 bytes along with the boilerplate. I new to golfing with java. hence I aint sure  about whether I had to include that!

Submissions (unless otherwise specified) can be either a full program (runnable by some interpreter without modification) or a function.

Noodel, 8 bytes
]5@LaƇ⁺ƈ

Try it:)

How it works
]5@LaƇ⁺ƈ
]5@La    # The string "]5@La" gets pushed onto the stack which in base 98 represents 8,640,000,000.
     Ƈ   # Pushes an integer that represents the current time where highest resolution is milliseconds.
      ⁺  # Add the time and the string which will be interpreted as 8,640,000,000ms.
       ƈ # Convert the integer to human readable time.
         # Implicitly output to the screen.

<div id="noodel" code="]5@LaƇ⁺ƈ" input="" cols="80" rows="2"/>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>

The character Ƈ is the unicode character U+0187, which is too large to be displayed in a single byte. Same goes for ƈ (U+0188). So while this is 8 characters long, the minimum byte-length is 10.

@iFreilicht, Noodel uses its own encoding. The editor does everything in UTF-16 to work better visually, but gets encoded based off of the Noodel code page before parsing.

C, 87 46 44 bytes
saved 2 bytes thanks to Albert Renshaw

f(){time_t t=time(0)+864e4;puts(ctime(&t));}

I realized the output is flexible enough to allow for day of week and time, so there's no need to use localtime or the tm structure at all.
Old answer
f(){time_t t=time(0)+8640000;char b[9];strftime(b,9,"%d-%m-%y",localtime(&t));puts(b);}

Based on Khaled.K's answer, but instead of messing with the tm structure, adds the number of seconds equivalent to 100 days directly to the time_t value. It also prints only the date, without time or day of week.
As it should happen on a golfed program, some ugly warnings are generated on compilation.
Try it online!
Ungolfed:
f(){
    // Current time + 100 days
    time_t t=time(0)+8640000;
    // Buffer for printing formatted time
    char b[9];
    // Print the time in format dd-mm-yy to buffer
    strftime(b,9,"%d-%m-%y",localtime(&t));
    // print buffer
    puts(b);
}

Shave 2 bytes by replacing 8640000 with 864e4

JavaScript, 42 bytes
(d=new Date()).setDate(d.getDate()+100)&&d

setInterval(_=>document.body.innerHTML=(d=new Date()).setDate(d.getDate()+100)&&d,1000)

I used your answer as inspiration to mine http://codegolf.stackexchange.com/questions/115436/100-day-countdown/115496#115496 ;)

IBM/Lotus Notes Formula, 29 bytes
@Adjust(@Today;0;0;100;0;0;0)

Unfortunately @Adjust requires the trailing 0's for the missing hh:mm:ss.
If we were allowed to display the time as well then changing @Today to @Now would save 2 bytes for 27.

JavaScript (ES6), 44 bytes
_=>new Date(Date.now()+864e7).toDateString()

25  bytes if returning a date with the time is acceptable:
_=>Date(Date.now()+864e7)

30 bytes
Mysql!
select NOW()+INTERVAL 100 DAY;

SQLite
SELECT date('now','+100 day');

C, 120 113 bytes
#include <time.h>
f(){time_t t=time(0);struct tm*tm=localtime(&t);tm->tm_mday+=100;t=mktime(tm);printf("%s",ctime(&t));}

Live Demo
#include <stdio.h>
#include <time.h>

void PrintDatePlus100days()
{
    // obtain current time
    time_t t = time( 0 );

    // convert to datetime struct
    struct tm *tm = localtime( &t );

    // add 100 days
    tm->tm_mday += 100;

    // convert to time_t
    t = mktime( tm );

    // print time in readable format
    puts( ctime( &t ) );
}

If I'm not mistaken, you don't need to account for #include ... boilerplate when submitting functions. (Java answers, for example, don't need import in that case)

@CássioRenan in Java you don't need to count the default imports like java.lang.*, just like how we don't count stdio.h and stdlib.h in C. But even in java, you need to either consider custom imports or put the path in the class name like java.util.Date, and that counts in your score.

Why using printf() would puts() not also work?

F# (53 bytes)
printf"%s"(DateTime.Now.AddDays(100.0).ToString("d"))

Don't see a lot of F# answers on here. Kudos!

Swift 3, 39 bytes
print(Date(timeIntervalSinceNow:864E4))

I'd argue you don't need the import foundation;. Swift runs just on iOS and that is auto imported there.

There aren't too many Swift answers here yet, so not sure what the consensus is. But I think you have a good point, I'll remove the import :)

@Albert Swift also runs on Mac OS and Linux. I don't know what that means for whether the import is required, though.

R (REPL), 14  bytes
Sys.Date()+100

Try it on Ideone.

This is a snippet. Your code is required to output the result, either as the result of a function, or to STDOUT as a full program.

Let us continue this discussion in chat.

@mbomb007 REPL answers are allowed, but they're considered a separate language.

@Dennis It wasn't listed as REPL before.

PowerShell, 23
(get-date).adddays(100)

This is my first ever try, so please give me constructive feedback. Thanks!

Python, 63 bytes
from datetime import*
print(datetime.now()+timedelta(days=100))

Very simple solution really. Because the datetime.now() result is the same type as the result of timedelta, it happily adds the two together.

It doesn't have to be a function. You could remove the lambda: and it would still be a full program.

@NonlinearFruit Yes but print would have to be added and that makes it the same number of bytes.

If you use Python 2, you can remove brackets in print to save 1 byte

the days= is optional, that would save 5+1 bytes (python2 print's brackets)

Golfed down to 57 bytes: from datetime import*;print datetime.now()+timedelta(100)

And he's deleted...:P

Do you need the datetime in datetime.now(), if you have already imported * from it?

@SparklePony yes, the datetime module includes a datetime class. Docs

Down to 55 bytes by using date.today rather than datetime.now: from datetime import*;print date.today()+timedelta(100)

JavaScript, 38 Bytes
d=new Date;d.setDate(d.getDate()+100);d

A little bit shorter than ASCII-only answer.

document.write(eval("d=new Date;d.setDate(d.getDate()+100);d"))

Golang, 58 bytes
import ."time"
func f(){Println(Now().AddDate(0, 0, 100))}

Full Program
package main

import . "time"
import . "fmt"

func main() {
    Println(Now().AddDate(0, 0, 100))
}

try it online!

Oracle, 34 bytes
SELECT CURRENT_DATE+100 FROM DUAL;

Python 2 + Pandas 0.19.1, 56 51 bytes
from pandas import*
print Timestamp('now','D')+100

SAS, 52 bytes
%put%sysfunc(intnx(day,%sysfunc(date()),100),date9.)

R, 16 14 21 bytes
print(Sys.Date()+100)

"2017-07-16"

you forgot a little zero

What I mean is that you need a print command. You cannot assume a REPL environment. If you run your code here and it's not printed to Output, then your code isn't a valid solution.

@mbomb007 I'd like to see some kind of citation that R must work in TIO. I've never seen an R answer link to TIO. I also just ran this code in a Unix terminal and the output was the same. Can I assume the code is allowed to be run in a terminal?

https://codegolf.meta.stackexchange.com/q/2419/8478: Default Program or Function
https://codegolf.meta.stackexchange.com/q/7842/8478: but also REPL

We treat REPLs as a separate language. So if your code requires a REPL to execute, you should list it as "R REPL" or something similar. In the same way, "Hello, World!" is not a valid "Hello World" program in Python, since it requires print in front to actually print to STDOUT in a non-repl environment.

@mbomb007 Thanks, and sorry you had to wrangle two of us on this. Now edited.

VBA, 8 bytes
?now+100

output:
2017-07-16 10:13:19

Works in the Immediate Window. Beats Excel by 2 bytes by skipping parentheses.

JavaScript, 21 bytes
Date(+new Date+864e7)

Actually, you don't really need new before Date.
Based on this post.

document.body.innerHTML = Date(+new Date+864e7);

Uhm, somehow the embracing Date function always returns the current date. Is this code correct? Also, you probably meant to write 864e4 if that is supposed to be the number of seconds in 100 days. Maybe the unit is milliseconds, I don’t know.

Perl 6, 20 bytes
print Date.today+100

Try it online!

Pyke, 6 bytes
wVs2h

Try it online! (doesn't use literal because I can't figure out how to embed it)
w      -  get 100 in 2 bytes
  Vs2h - Repeat ^ times
   s2  -   increment the day part
     h -  strip the time part

Hexdump:
77 84 56 73 32 68

AWK, 43 bytes
BEGIN{print strftime("%F",systime()+864e4)}

Could save a few bytes if run using some input... maybe... using something like:
{$0=strftime("%F",systime()+864e4)}1

and running the code like:
awk '{$0=strftime("%F",systime()+864e4)}1'<<<1

But then we have to account for the bytes used to do that.  So I'll stick with simplicity :)

VBScript, 18 bytes
dateadd(d,100,now)

Wolfram Language, 19 bytes
DatePlus[Today,100]

Kinda self-explanatory but let's explain.
DatePlus (From Wolfram Language Reference)

DatePlus[date,{n,"unit"}]
  gives the date n units after date.
Possible offset units are "Year", "Quarter", "Month", "Week", "Day",
  "Hour", "Minute", "Second", "Weekday", "Weekend", Monday through
  Sunday, "EndOfMonth", and "BusinessDay". Offsets can also be specified
  using the Quantity framework. {y,m,d} is taken to be equivalent to
  {y,m,d,0,0,0} etc. DatePlus[date,offset] gives results in the same
  general format as date. When date is a list, the result has the same
  length as date, possibly extended to include the smallest unit in
  offset. » When date is a string, the result is in the form specified
  by $DateStringFormat.

Today (From Wolfram Language Reference)

Today
  gives a DateObject representing the current day.

So basically, it just adds 100 days to the current date.
See screenshot below.

Matlab/Octave, 16 bytes
datestr(now+100)

Pretty much self-explanatory and (a bit) boring, but could not be missing!

k6 and q, 8 bytes
.z.d+100

Apparently, .z.d returns the current date, and the default units when adding to dates are days.

Japt, 9 bytes
Ð864e7+Kj

Test it
My first Japt answer!
A port of the existing JS answer.

NodeJS, 96 bytes
require('http').createServer(function(q,s){s.end(':'+new Date(Date.now()+(864e7)))}).listen(8e3)

My first codegolf attempt ever, but I can't find anything to make it shorter.

Welcome to PPCG! Just because NodeJS is a server framework, you don't have to make a server to display the output. Something as simple as console.log would suffice for outputting the result :)

@ConorO'Brien true, but I thought it may worth an entry to show, how NodeJS can utilize the same result with it's intended purpose. However, you may argue, whether http server is the sole purpose of the framework, so I admit it may have been unnecessary.

Even so, you can shorten it with an arrow function.

HP‑41C series, 16 Bytes
This program requires an HP‑41CX or an HP‑41C/CV with a time module plugged in.
After energizing the clock’s electronics, the clock is set to January 1, 1900, 0:00 a. m, so set the clock first.
01♦LBL⸆T           5 Bytes  global label requires 4 + (length of string) Bytes
02 DATE            2 Bytes  obtain current date in MM.DDYYYY or DD.MMYYYY format
   NULL            1 Byte   invisible Null byte before numbers
03 100             3 Bytes  push 100 on to the stack (Y ≔ date; X ≔ 100)
04 DATE+           2 Bytes  add 100 days (X) to today’s date (Y) and yield date
05 FIX 6           2 Bytes  ensure _all_ digits of the date are visible
06 RTN             1 Byte   `RTN` does not affect local label search

The X register (the top of the stack) now contains the date in MM.DDYYYY format (or DD.MMYYYY should you have changed that by invoking the DMY command).
Limitations:
The result of the DATE+ and other time‑related calculation operations can be “any date from October 15, 1582 (the beginning of the Gregorian calendar) through September 10, 4320” (quoted from the HP‑41CX Owner’s Manual Vol. 2).

Swift 5.9, 53 bytes
import Foundation
print("\(Date()+864e4)".prefix(10))