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


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

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


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.

To make sure that your answer shows up, please start your answer with a headline, using the following Markdown template:

# 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

var QUESTION_ID=94485,OVERRIDE_USER=12537;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

  • 4
    \$\begingroup\$ @BetaDecay The output is different and the input is different. Therefore, the question is not a duplicate. \$\endgroup\$
    – Oliver Ni
    Sep 25 '16 at 20:10
  • 1
    \$\begingroup\$ I strongly disagree: they're basically the same question with a trivial difference \$\endgroup\$
    – Beta Decay
    Sep 25 '16 at 20:11
  • 4
    \$\begingroup\$ @BetaDecay they're different as the birthday one is constant output - no input \$\endgroup\$
    – Blue
    Sep 25 '16 at 20:11
  • 3
    \$\begingroup\$ @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. \$\endgroup\$
    – user45941
    Sep 25 '16 at 22:59
  • 1
    \$\begingroup\$ Possible duplicate of Sing Happy Birthday to your favourite programming language \$\endgroup\$ Jan 22 '20 at 18:50

34 Answers 34


sed, 22 bytes

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

Try it online!


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


Hello PPCG, I'm sed

Turing Machine Code, 360 bytes

0 * * l 1
1 _ [ l 2
2 _ o l 3
3 _ l l 4
4 _ l l 5
5 _ e l 6
6 _ H * 7
7 [ _ r 8
7 * * r *
8 _ ,  r 9
8 * * r *
9 _ _ r I
I _ I r '
' _ ' r m
m _ m r ~
~ _ _ r T
T _ T r u
u _ u r r
r _ r r i
i _ i r n
n _ n r g
g _ g r #
# _ _ r M
M _ M r a
a _ a r c
c _ c r h
h _ h r í
í _ i r ñ
ñ _ n r e
e _ e r ^
^ _ _ r C
C _ C r o
o _ o r d
d _ d r è
è _ e r halt

Try it online!


GolfScript, 28 bytes

, I'm GolfScript"n/*

Try it online!


, I'm GolfScript"    # Define the string to be inserted: "Hello \n, I'm GolfScript"
                 n/  # Split upon newlines             : ["Hello " ", I'm GolfScript"]
                   * # Join the array by input         : ["Hello input, I'm GolfScript"]

W j, 17 14 bytes

Short language names for the win. (I beat pl, and Dennis as well)



Hello "           % Start the output string with "Hello"
       a          % Insert the input onto the stack
        ", I'm W" % End the output string with ", I'm W"
                  % Implicit join whole stack at the end of the program

Not the answer you're looking for? Browse other questions tagged or ask your own question.