Your task is to write a program or function that takes a string as input, and prints Hello (input), I'm (language name).

Examples

Python:
Input: Oliver
Output: Hello Oliver, I'm Python

C++:
Input: Jacob
Output: Hello Jacob, I'm C++

etc.

Remember, this is , so the code with the lowest number of bytes wins.

Here is a Stack Snippet to generate both a regular leaderboard and an overview of winners by language.

# Language Name, N bytes

where N is the size of your submission. If you improve your score, you can keep old scores in the headline, by striking them through. For instance:

# Ruby, <s>104</s> <s>101</s> 96 bytes

If there you want to include multiple numbers in your header (e.g. because your score is the sum of two files or you want to list interpreter flag penalties separately), make sure that the actual score is the last number in the header:

# Perl, 43 + 2 (-p flag) = 45 bytes

You can also make the language name a link which will then show up in the leaderboard snippet:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

• @BetaDecay The output is different and the input is different. Therefore, the question is not a duplicate. – Oliver Ni Sep 25 '16 at 20:10
• I strongly disagree: they're basically the same question with a trivial difference – Beta Decay Sep 25 '16 at 20:11
• @BetaDecay they're different as the birthday one is constant output - no input – Blue Sep 25 '16 at 20:11
• @muddyfish The addition of the input isn't sufficient to distinguish this from the birthday challenge in my opinion. If you want to be picky, this is a half-dupe of cat and a half-dupe of happy birthday. Two half-dupes with a trivial combination makes a whole dupe. – Mego Sep 25 '16 at 22:59
• Possible duplicate of Sing Happy Birthday to your favourite programming language – pppery Jan 22 at 18:50

pl, 15 bytes

Hello _, I'm pl

Try it online!

Python, 29 bytes

"Hello {}, I'm Python".format

Strings methods for the win! The built-in method format of a string substitutes the arguments (here a single string) into any replacement fields (here {}).

Usage:

"Hello {}, I'm Python".format
print f("xnor")
Hello xnor, I'm Python

Previous 30-byte:

"Hello %s, I'm Python".__mod__
• You can remove the exclamation point. – acrolith Sep 25 '16 at 21:15

Assembly (x86-64, Linux), 217 205 bytes

4927 segmentation faults later...

.global main
.data
s:.ascii"Hello %qs, I'm Assembly\n"
f:.ascii"%qs"
i:.ascii""
main:mov $i,%rsi mov$f,%rdi
mov $0,%rax call scanf mov$0,%rax
mov $i,%rsi mov$s,%rdi
call printf
end:mov $0,%rax call exit Doesn't work for inputs with a length greater than 7, because this exceeds the memory limits of a quadword(?). Also, because I'm a noob in Assembly. Explanation: .global main .data output_string: .ascii "Hello %qs, I'm Assembly\n" format_input: .ascii "%qs" input_string: .ascii "" main: mov$input_string, %rsi     # Place the memory address to the second argument
mov $format_input, %rdi # Place the format string to the first argument mov$0, %rax                # Set RAX to 0
call scanf                  # Call scanf with RDI and RSI as the arguments

mov $0, %rax # Set RAX to 0 mov$input_string, %rsi     # Place the input string to the second argument
mov $output_string, %rdi # Place the output format to the first argument call printf # Call printf with RDI and RSI as the arguments end: mov$0, %rax                # Set RAX to 0 (which is the exit code)
call exit                   # Call the exit function

Save in a file called myProgram.s and do the following:

$gcc -o myProgram myProgram.s$ ./myProgram

05AB1E, 21 17 bytes

”Ÿ™ ÿ, I'm 05AB1E

Try it online!

Java, 88 bytes

interface A{static void main(String[]a){System.out.print("Hello "+a[0]+", I'm Java!");}}

Takes input on first command-line argument. Verbose Java is verbose.

• You can write a function/method instead of a full program. – corvus_192 Sep 26 '16 at 17:44

Cheddar, 26 bytes

"Hello %s I'm Cheddar"&(%)
• Functional approach ftw – Conor O'Brien Sep 27 '16 at 12:52

Jelly, 16 bytes

“' ṗr>ƊḳȧT°ḋZ»Ỵj

Try it online!

How it works

Call the argument of the main link s.

“' ṗr>ƊḳȧT°ḋZ»

represents an integer in bijective base 256 that encodes a sequence of dictionary words and/or characters. In this specific case, it encodes the dictionary word Hello, followed by ¶, I'm with a leading space ( represents a linefeed), followed by the dictionary word Jelly with a leading space.

The result is as follows.

Hello
, I'm Jelly

The atoms splits this string at linefeeds, yielding the following array.

["Hello ", "", I'm Jelly"]

Finally, the j atom joins that array, using the string s as separator.

Straw, 25 bytes

(Hello b, I'm Straw!)b</>

Try it online!

Simple regex substitution.

Minecraft, 27 bytes

say Hello @p, I'm Minecraft

say Prints the given string and replaces @p with the name of the nearest player

MATL, 24 bytes

'Hello %s, I''m MATL'jYD

Try it Online!

Element, 28 bytes

Hello\ _\,\ I\'m\ Element..

Woo! Two months since this site's previous Element answer!

• Am I right in assuming that \ is the escape character, and that it escapes the spaces? If so, why do they have to be escaped? – Conor O'Brien Sep 27 '16 at 18:54
• @ConorO'Brien Normally, two words separated by a space are pushed as two separate tokens. For example, 2 3 pushes a 2 and a 3, while 2\ 3 pushes 2 3. There's no special processing to distinguish literal words from literal numbers, they are all represented by scalars in Perl. – PhiNotPi Sep 27 '16 at 19:00

Emotinomicon, 73 bytes

😭Hello😲💯😜🔟✖➕⏫😭, I'm Emotinomicon😲😎⏪⏬⏩

If you go to the Interpreter you can generate an explanation

Thanks to @Oliver Ni for make me notice that bug that Emotinomicon removes whitespaces at the end of the String literal

• I count 50 bytes – TuxCrafting Sep 26 '16 at 9:46
• You're right I missed that although I will add two bytes back to add whitespaces between the name and the literals. – Roman Gräf Sep 26 '16 at 11:02
• You need a space after Hello. It is currently printing HelloOliver, I'm Emotinomicon. – Oliver Ni Sep 26 '16 at 17:01

Batch, 25 bytes

@echo Hello %*, I'm Batch

Conveniently ' isn't a quote character in Batch.

• The spelling was changed in the question to remove a ! – Conor O'Brien Sep 27 '16 at 13:00
• @ConorO'Brien Serves me right for copying from the sh answer. – Neil Sep 27 '16 at 18:46

dc, 23 bytes

[, I'm dc!]?[Hello ]PPP

dc doesn't provide any means of getting raw strings, so you have to wrap your input in [brackets]. For example:

$dc hello.dc <<< [Daniel] Hello Daniel, I'm dc! GolfScript, 27 bytes "Hello "\", I'm GolfScript" Takes input from STDIN. Pyke, 21 bytes "Hello , I'm Pyke"6Q: Try it here! Pyth, 21 bytes X6"Hello , I'm Pyth"Q Try it here! C, 50 39 bytes f(char*s){printf("Hello %s, I'm C",s);} • A function would be considerably shorter. – Dennis Sep 25 '16 at 23:18 Scala, 25 bytes n=>s"Hello$n, I'm Scala"

To use it, assign this function to a variable.

val greeting = n=>s"Hello $n, I'm Scala" greeting("Jacob") I didn't expect that you can drop the type annotation if the parameter is of type Any. Jolf, 20 17 bytes "Ξ\x08£C¦i, I‘m Jolf Try it here! Replace \x08 with the literal character. ¦i is interpolated input, and Ξ\x08£C is compressed form of Hello with a trailing space. This outputs, for input Conor: Hello Conor, I'm Jolf Alternatively, for 23 bytes: "Hello ¦i, I‘m ¦ᖒ J, 22 bytes ', I''m J',~'Hello '&, This is a fork: ', I''m J' ,~ 'Hello '&, 'Hello '&, prepends Hello and ', I''m J' ,~ appends , I'm J. Example run: (', I''m J',~'Hello '&,)'Conor' Hello Conor, I'm J JavaScript, 32 bytes x=>Hello${x}, I'm JavaScript`

Simple enough. ${x} is inline x, the argument. Ruby, 32 bytes puts "Hello #{$*[0]}, I'm Ruby"

Save as intro.rb, run as ruby intro.rb <name>.

Python, 33 bytes

lambda a:"Hello %s, I'm Python"%a

CJam, 21 bytes

"Hello "l", I'm CJam"

Try it online!

S.I.L.O.S112 110 bytes

def : lbl
print Hello
a=256
:a
x=get a
if x c
if 1 e
:c
printChar x
a+1
if x a
lble
print , I'm S.I.L.O.S

It should be loosely readable. Just a trivial modification of the cat program

Try it online!

• You can remove the spaces in a + 1 – acrolith Sep 25 '16 at 21:00

sed, 22 bytes

s/.*/Hello &, I'm sed/

Try it online!

Run:

sed -f hello.sed <<< "PPCG"

Output:

Hello PPCG, I'm sed