Lelucon ayah itu menyenangkan

49

Kita semua tahu lelucon ayah klasik yang berlangsung seperti ini:

  1. Seseorang mengatakan kalimat untuk menggambarkan diri mereka (misalnya I'm tiredatau I'm confused).

  2. Penggila lelucon ayah datang dan menjawab Hi <adjective>, I'm Dad!, karena perkenalan mengikuti format yang sama ( I'm Petermengikuti format yang sama seperti I'm hungry).

Tugas Anda adalah mengambil input dalam bentuk self-descriptor, dan menampilkan bentuk dad-joke yang sesuai, tetapi alih-alih menggunakan kata "Dad", Anda akan menggunakan nama bahasa pemrograman yang Anda pemrograman di.

Uji kasus (asumsikan bahwa mereka sedang diuraikan oleh Python):

I'm amazing                  Hi amazing, I'm Python!
I'm tired                    Hi tired, I'm Python!
I'm hungry                   Hi hungry, I'm Python!
I'm fat                      Hi fat, I'm Python!

Sekarang asumsikan bahwa test case ini diuraikan oleh Golfscript:

I'm a programmer             Hi a programmer, I'm Golfscript!
I'm a question-writer        Hi a question-writer, I'm Golfscript!
I'm a Stack-Overflow-er      Hi a Stack-Overflow-er, I'm Golfscript!

Tantangan yang pasti:

  1. Ambil string dalam format self-descriptor ( I'm <adjective>atau I'm a(n) <noun>) menggunakan input standar atau melalui fungsi.

    • Asumsikan tidak ada tanda baca akhir.

    • Anggaplah kata I'mitu digunakan dan tidak I am.

  2. Konversikan ke format ayah-lelucon - lihat contoh di atas untuk bagaimana yang seharusnya terlihat.

Hal-hal lain:

  • Ini adalah , sehingga jumlah byte terpendek menang.

  • Ikuti aturan celah standar - tidak ada satupun, tolong.

  • Selamat bersenang-senang!


Papan peringkat

Anda dapat melihat papan peringkat untuk posting ini dengan memperluas widget / snippet di bawah ini. Agar posting Anda dimasukkan dalam peringkat, Anda perlu tajuk ( # header text) dengan info berikut:

  • Nama bahasa (akhiri dengan tanda koma ,atau tanda hubung -), diikuti oleh ...

  • Jumlah byte, sebagai angka terakhir yang muncul di header Anda.

Misalnya, JavaScript (ES6), 72 bytesvalid, tetapi Fortran, 143 bytes (8-bit)tidak valid karena jumlah byte bukan angka terakhir di header (jawaban Anda akan dikenali sebagai 8 byte - jangan manfaatkan ini).

<iframe src="https://ozewski.github.io/ppcg-leaderboard/?id=185872" width="100%" height="100%" style="border: none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>

hubungkan charger Anda
sumber
39
Salah satu cara saya mempertimbangkan untuk memberi tahu keluarga saya bahwa istri saya sedang menunggu adalah dengan menceritakan sebanyak mungkin lelucon tentang ayah dan melihat siapa yang tertangkap!
Giuseppe
7
Beberapa contoh keluaran diakhiri dengan tanda seru dan beberapa tidak. Apa maknanya?
Rekursif
9
Praktik biasa adalah memberikannya lebih lama sebelum menerima jawaban, jika Anda melakukannya sama sekali: codegolf.meta.stackexchange.com/q/2035/66252
user2390246
7
Dan tie-breaker bukan suara, itu yang mencapai skor terendah pertama.
Shaggy
4
Sekarang menunggu bahasa golf berikutnya yang namanya adalah string kosong.
640KB

Jawaban:

26

V , 13 byte

cEHi<esc>A, <C-r>" V!

Cobalah online!

Terinspirasi oleh jawaban tsh

Ini mengambil keuntungan dari fakta yang I'mditarik dari awal string ketika menghapus teks dari awal, dan menempelkannya ke akhir dengan <C-r>"saat dalam mode sisipkan.

Permen Gumdrop
sumber
Aku hanya diedit I'muntuk <C-O>pkemudian melihat jawaban Anda ...
TSH
2
Bahasa golf menggunakan Vim dan escapemembutuhkan 5 karakter ???
mowwwalker
4
@mowwwalker Tidak. Ini benar-benar byte 0x1B, tetapi lebih mudah dan lebih jelas apa artinya jika Anda menuliskannya sebagai <esc>. Sama untuk <C-r>, yang benar0x12
DJMcMayhem
@DJMcMayhem, ah itu lebih masuk akal
mowwwalker
18

C (gcc) , 59 42 33 byte

-17 byte terima kasih kepada @Conor O'Brien memperhatikan bahwa impor tidak perlu

-9 byte berkat @tsh menunjukkan cara penulisan fungsi UB yang lebih pendek

a(x){printf("Hi%s, I'm C!",x+3);}

Cobalah online!

Memotong 3 karakter pertama dari input (menghilangkan I'm) dan mengelilinginya dengan teks yang diinginkan.

Neil A.
sumber
Program dikompilasi tanpa impor, sehingga Anda dapat menjatuhkannya selama 42 byte.
Conor O'Brien
@ ConorO'Brien tangkapan bagus!
Neil A.
3
Dan int ini juga opsional.
tsh
2
(?) Dan juga char*, mungkin ...; jadi a(x){printf("Hi%s, I'm C!",x+3);}seharusnya bekerja
tsh
2
@ tsh: ya, dalam praktiknya itu akan bekerja pada sebagian besar implementasi C 32-bit (di mana a intdapat menahan char*tanpa memotongnya), meskipun ada perilaku yang tidak ditentukan. Pada x86-64 gcc di Linux, itu akan selalu gagal dalam eksekusi PIE (biasanya tidak ada pointer di 32 bit rendah ruang alamat virtual, dan gcc tidak akan terjadi untuk menyalin bit 32 tinggi sambil menghitung x+3dari fungsi arg di register RDI). Tetapi dalam executable non-PIE, alamat statis berada di 31 bit rendah dari ruang alamat virtual, jadi jika pemanggil melewati string literal atau buffer statis, itu akan berfungsi.
Peter Cordes
16

V , 13 byte

cEHi<Esc>A, <C-O>p V!

Cobalah online!

Baru untuk V. Baru tahu sekitar 30 menit yang lalu. Bagaimanapun, bahasa ini dipilih hanya karena namanya hanya biaya 1 byte. Saya tidak yakin bagaimana mengirim <End>kunci dalam V. Sebagian besar lingkungan vim akan menerima <End>sebagai pengganti <Esc>Adalam contoh ini. Tapi, Anda tahu, V adalah 2 karakter lebih pendek dari vim. :)

Berkat @Candy Gumdrop , menghemat 1 byte.

tsh
sumber
1
Bisa menghemat satu byte dengan mengubah c3lke cE.
Candy Gumdrop
@CandyGumdrop Wow, saya tidak tahu huruf besar Esebelumnya.
tsh
Anda juga dapat melakukan cW(yang tampaknya berbeda, tetapi sebenarnya identik dengan cE) atau 3s. Pekerjaan yang baik! Saya baru saja memposting hampir jawaban yang tepat ini ketika saya melihat bahwa sudah ada 2 V jawaban, yang merupakan kejutan yang menyenangkan. Saya sudah mencoba beberapa pendekatan berbeda, tetapi saya tidak yakin apakah mungkin untuk mendapatkan <13 byte.
DJMcMayhem
11

Stax , 13 byte

â∞¿φ‼0▲(─ƒSqÄ

Jalankan dan debug itu

Dibongkar, tidak diserang, dan dikomentari, sepertinya ini.

.Hip        print "Hi" with no newline
3tp         trim 3 characters from start of input and print with no newline
            final line is to print the unterminated compressed literal ", I'm stax!"
`dYgAwg_

Saya memindahkan komentar terakhir naik satu baris karena tidak ada yang dapat mengikuti string literal yang tidak dikuatkan.

Jalankan yang ini

rekursif
sumber
Saya akan menyatakan Anda sebagai pemenang karena pos Anda memiliki lebih banyak suara, tetapi Anda secara teknis terikat dengan satu orang lain. Selamat!
connectyourcharger
10

brainfuck, 164

,-.+>,>,----.++++>,.>,[.,]<<<+++++.----->>.[<]>[.>]<[->+++<]>++.[--->+<]>----.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.+[++>---<]>-.

Cobalah online!

"Brengsek!" bagian dari senar dihasilkan dengan alat ini , mungkin bisa diraih lebih lanjut dengan tangan.

kotak kardus
sumber
2
Coba BF Crunch
Jo King
10

Excel, 36 33 byte

-3 byte berkat Johan du Toit.

Input masuk ke A1.

="Hi "&MID(A1,4,99)&", I'm Excel"

Percobaan pertama:

=REPLACE(A1,1,3,"Hi")&", I'm Excel!"
Wernisch
sumber
="Hi "&MID(B13,4,99)&", I'm Excel"34 byte
Johan du Toit
@JohanduToit terima kasih. A1bukannya B13jadi sebenarnya 33 byte.
Wernisch
8

Python 3 , 35 34 byte

lambda s:"Hi%s, I'm Python!"%s[3:]

Cobalah online!

-1 byte berkat Perwujudan Ketidaktahuan

Juga 34 byte, menggunakan string yang diformat yang lebih baru, berkat Gábor Fekete:

lambda s:f"Hi{s[3:]}, I'm Python!"

Cobalah online!

Stephen
sumber
3
34 byte
Perwujudan Ketidaktahuan
Bagaimana kehilangan lambda s:dan mengganti %s[3:]dengan %input()[3:]? (-4 byte)
niko
@niko jika saya mengerti apa yang Anda katakan, itu tidak akan mencetak apa pun. Aturan default di situs ini adalah program lengkap yang mencetak output atau fungsi yang mengembalikan output. Biasanya apa yang Anda sarankan disebut snippet, dan tidak akan menjadi solusi yang lengkap, perlu dibungkus dengan print()7 byte lebih, itulah sebabnya jawaban Python biasanya menggunakan lambdas.
Stephen
Tapi apa bedanya dengan jawaban Anda (dan sebenarnya sebagian besar) di sini? Maksud saya keduanya sendiri tidak mencetak apa-apa, dan keduanya mengembalikan output yang sama kan? (Cukup baru di sini - masih terbiasa dengan CG)
niko
2
@niko Tidak apa-apa! Dengan lambda s, saya telah mendefinisikan fungsi (anonim). Jika Anda melihat header dan footer di tautan TIO, saya beri nama fungsi itu f, lalu memanggilnya dengan f("I'm whatever"). Kemudian fungsi mengembalikan output yang diharapkan. Dengan cuplikan Anda, Anda tidak mencetak atau kembali dari suatu fungsi - Anda hanya memiliki sedikit kode yang mengevaluasi hasil yang benar, tetapi tidak melakukan apa-apa dengannya. Anda dapat menjalankan program beberapa kali, Anda dapat memanggil fungsi beberapa kali, tetapi snippet hanyalah snippet.
Stephen
6

R 45 44 39 byte

@Giuseppe Edit

sub("I'm(.*)","Hi\\1, I'm R",scan(,""))

@AaronHayman Sunting

function(s)sub("I'm (.*)","Hi \\1, I'm R",s)

Cobalah online!

niko
sumber
dapat menghemat penggantian satu byte "(I'm )dengan"(.* )
Aaron Hayman
1
@AaronHayman, tidak bekerja untuk I'm a programmer(banyak spasi) karena keserakahan
Nahuel Fouilleul
@NahuelFouilleul Benar, saya tidak yakin apakah ruang putih pertama atau terakhir akan dipertimbangkan.
niko
1
Oke, saya menyimpan satu byte, dan saya pikir ini berfungsi dengan baik Cobalah online!
Aaron Hayman
2
2 byte dengan mengubah subto "I'm(.*)" and "Hi\\1, I'm R"dan 3 byte dengan mengambil input dari stdin menggunakan scan: Coba online
Giuseppe
6

PHP ,34 32 byte

Hi<?=substr($argn,3)?>, I'm PHP!

Cobalah online!

Input via STDIN, panggil dengan -F.

$ echo I'm a Stack-Overflow-er|php -F dad.php
Hi a Stack-Overflow-er, I'm PHP!

$ echo I'm hungry|php -F dad.php
Hi hungry, I'm PHP!
640KB
sumber
6

x86 ,37 36 byte

$ xxd DAD.COM
00000000: d1ee ac8a d8c6 0024 adc7 0448 698b d6b4  .......$...Hi...
00000010: 09cd 21ba 1901 cd21 c32c 2049 276d 2078  ..!....!., I'm x
00000020: 3836 2124                                86!$

Belum dirakit:

D1 EE       SHR  SI, 1                  ; point SI to DOS PSP (080H)
AC          LODSB                       ; load string length into AL, advance SI
8A D8       MOV  BL, AL                 ; put string length into BL
C6 40 24    MOV  BYTE PTR[BX][SI], '$'  ; add string terminator to end of string
AD          LODSW                       ; advance SI two chars
C7 04 6948  MOV  WORD PTR[SI], 'iH'     ; replace second and third char with 'Hi'
8B D6       MOV  DX, SI                 ; load string address for INT 21H string function
B4 09       MOV  AH, 9                  ; display a '$' terminated string function
CD 21       INT  21H                    ; call DOS API
BA 0119     MOV  DX, OFFSET S           ; load address for second part of string
CD 21       INT  21H                    ; call DOS API
C3          RET                         ; return to DOS
S  DB ", I'm x86!$"  

Program DOS mandiri yang dapat dieksekusi. Input dari baris perintah, output ke layar.

masukkan deskripsi gambar di sini

Unduh dan uji DAD.COM .

* Nama "bahasa" yang tepat di sini sedikit ambigu karena kode mesin CPU sebenarnya bukan bahasa dalam arti formal. Menggunakan "x86" sebagai nama yang dipahami dan diterima secara umum untuk platform target.

640KB
sumber
[memindahkan komentar dari utas utama] Saya akan mengatakan "x86" adalah arsitekturnya, sedangkan "MA SM" akan menjadi salah satu bahasa yang tersedia pada arsitektur itu (perlu diketahui bahwa ada ruang di dalamnya).
Jonathan Allan
5
Saya pikir "x86" mungkin baik-baik saja, ini golf :)
Jonathan Allan
5

Ruang putih , 267 byte

[S S S T    S S T   S S S N
_Push_72_H][T   N
S S _Print_as_character][S S S T    T   S T S S T   N
_Push_105_i][T  N
S S _Print_as_character][S S S N
_Push_0][S N
S _Duplicate_0][S N
S _Duplicate_0][T   N
T   S _Read_STDIN_as_character][T   N
T   S _Read_STDIN_as_character][T   N
T   S _Read_STDIN_as_character][N
S S N
_Create_Label_INPUT_LOOP][S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   S _Read_STDIN_as_character][T   T   T   _Retrieve][S N
S _Duplicate_input][S S S T S T S N
_Push_10][T S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_TRAILING][T N
S S _Print_as_character][N
S N
N
_Jump_to_Label_INPUT_LOOP][N
S S S N
_Create_Label_TRAILING][S N
N
_Discard_top][S S T T   S S S T S T N
_Push_-69_!][S S T  T   N
_Push_-1_e][S S T   T   T   N
_Push_-3_c][S S T   T   S T N
_Push_-5_a][S S S T S T S N
_Push_10_p][S S S T T   S T N
_Push_13_s][S S T   T   N
_Push_-1_e][S S S T T   T   S N
_Push_14_t][S S S T T   N
_Push_3_i][S S S T  S N
_Push_2_h][S S T    T   T   T   T   N
_Push_-15_W][S S T  T   S S S T T   S N
_Push_-70_space][S S S T    T   T   N
_Push_7_m][S S T    T   T   T   T   T   T   N
_Push_-63_'][S S T  T   T   T   S T N
_Push_-29_I][S T    S S T   T   N
_Copy_0-based_3rd_-70_space][S S T  T   T   T   S T S N
_Push_-58_,][N
S S T   N
_Create_Label_PRINT_TRAILING_LOOP][S S S T  T   S S T   T   S N
_Push_102][T    S S S _Add][T   N
S S _Print_as_character][N
S N
T   N
_Jump_to_Label_PRINT_TRAILING_LOOP]

Huruf S(spasi), T(tab), dan N(baris baru) ditambahkan hanya sebagai penyorotan.
[..._some_action]ditambahkan sebagai penjelasan saja.

Karena Whitespace memasukkan satu karakter pada satu waktu, input tersebut harus berisi baris tambahan sehingga ia tahu kapan harus berhenti membaca karakter dan input selesai.

Cobalah online (dengan spasi, tab, dan hanya baris baru).

Penjelasan dalam pseudo-code:

Print "Hi"
Read three characters from STDIN, and do nothing with them
Start INPUT_LOOP:
  Character c = STDIN as character
  If(c == '\n'):
    Call function PRINT_TRAILING
  Print c as character
  Go to next iteration of INPUT_LOOP

function PRINT_TRAILING:
  Discard the top of the stack (the c='\n' that was still on the stack)
  Push "!ecapsetihW m'I ," one character at a time
  Start PRINT_TRAILING_LOOP:
    Print as character
    Go to next iteration of PRINT_TRAILING_LOOP

Karakter dari ", I'm Whitespace!"didorong dalam urutan terbalik, dan kemudian dicetak dalam satu lingkaran. Semua nilai karakter ini juga diturunkan sebesar 102, yang ditambahkan dalam loop sebelum mencetak untuk menghemat byte. Konstanta ini untuk menurunkan setiap karakter dengan dihasilkan dengan program Java ini . Selain itu, alih-alih mendorong nilai -70untuk kedua spasi dua kali, spasi kedua di "!ecapsetihW m'I ,"disalin dari yang pertama dengan Salin bawaan untuk menyimpan beberapa byte.

Kevin Cruijssen
sumber
5

Bahasa Formula IBM / Lotus Notes, 61 62 byte

1 karena saya belum melihat !pada akhir output.

"Hi"+@Right(i;"I'm")+", I'm IBM/Lotus Notes Formula Language!"

Rumus bidang terkomputasi yang mengambil inputnya dari bidang yang dapat diedit i. Itu akan gagal untuk "Aku seorang aku" tetapi karena itu tidak masuk akal sama sekali aku menganggap itu tidak akan terjadi.

Malu pada 32 byte, nama bahasa lebih dari setengah total panjang rumus!

Cuplikan layar di bawah ini menunjukkan contoh input dan output:

masukkan deskripsi gambar di sini

ElPedro
sumber
5
Sepertinya bahasa Anda akan bagus untuk pekerjaan itu jika namanya tidak terlalu lama :)
connectyourcharger
jika saya serius, saya mungkin akan menyebutnya seperti itulah Formulayang dimaksud dalam komunitas pengembang Notes / Domino :-)
ElPedro
1
@PeterCordes - Kemungkinan tapi Lotus Notes / Domino juga memiliki LotusScript sebagai bahasa
bawaan
1
Sebenarnya bisa sedikit lebih baik dari itu sejak IBM mengubah nama menjadi IBM Notes tapi kemudian mereka mengubah nama lagi menjadi IBM Domino jadi saya kira itu harus benar-benar benar "Hai @PeterCordes, saya Formula Domino IBM" :)
ElPedro
1
@PeterCordes Hanya bagian penting dari nama bahasa yang diperlukan - Saya menerima Perlsebagai pengganti Perl 5atau Perl 5 -p.
connectyourcharger
5

sed ( -r), 31 28 25 byte

-3 byte terima kasih kepada Shaggy -3 byte karena -rtidak diperlukan dalam output

s/I'm(.*)/Hi\1, I'm sed!/

TIO

Nahuel Fouilleul
sumber
28 byte ?
Shaggy
Hmm ... Cara kami menghitung bendera adalah mendeklarasikannya sebagai bahasa yang berbeda jadi saya pikir Anda mungkin memerlukannya-r tetapi akan lebih baik jika Meta mempertimbangkannya.
Shaggy
saya dihapus karena perl 5 jawaban dan komentar
Nahuel Fouilleul
5

Japt , 18 byte

`Hi{s3}, I'm Japt!

Ketika perpustakaan kompresi string Japt mencapai tingkat kompres 0% ...

Cobalah

Alternatif 18 byte lainnya:

`Hi{Ť}, {¯4}Japt!
Perwujudan Ketidaktahuan
sumber
1
... tapi masih mengalahkan Jelly dan 05AB1E :)
Shaggy
5

Oktaf , 35 byte

@(s)["Hi" s(4:end) ", I'm Octave!"]

Cobalah online!

@(s)                                 % Anonymous function taking a string input
    [                             ]  % Concatenate everything inside the brackets
     "Hi"          ", I'm Octave!"]  % The fixed parts of the output string
          s(4:end)                   % The input, except "I'm"

                                     % Returns the concatenated string

42 byte:

Saya mencoba mengambil "Oktaf" entah bagaimana, tanpa menuliskannya, karena 6 karakter cukup banyak dibandingkan dengan beberapa nama bahasa lainnya di sini. Sayangnya, saya hanya bisa menemukan ver, yang menampilkan struct dengan bidang yang dipisahkan koma. Membutuhkan lebih dari 6 byte. :(

@(s)["Hi" s(4:end) ", I'm " {ver.Name}{1}]

Cobalah online!

Stewie Griffin
sumber
5

Ruby -p , 32 27 26 byte

-5 byte dengan memanfaatkan jawaban Jelly Nick Kennedy .

-1 byte dari pemisahan pada titik yang berbeda dalam string. Juga menyadari bytecount lama saya salah.

~/m/;$_="Hi#$', I'm Ruby!"

Penjelasan

                            # -p gets line of input and saves to $_
~/m/;                       # Find first 'm' in $_ using regex
     $_="Hi#$', I'm Ruby!"  # Save modified string to $_
                            # ($' is the string AFTER the most recent regex match)
                            # -p outputs $_ to screen

Cobalah online!

Nilai Tinta
sumber
Keren! Di mana input Anda?
connectyourcharger Anda
@connectyourcharger menambahkan penjelasan. Inputnya adalah STDIN.
Nilai Tinta
Gotcha. Jawaban yang bagus!
Hubungkan chargerAnda
4

Karat , 41 byte

|x:&str|print!("Hi{}, I'm Rust!",&x[3..])

Cobalah online!

Darrylyeo
sumber
4

Batch, 22 + 3 = 25 byte

@echo Hi %*, %0 Batch!

+3 byte untuk memberi nama file ini I'm(dengan .batekstensi yang diperlukan untuk file Batch). Dipanggil sebagai I'm hungry, kapan akan bergema Hi hungry, I'm Batch!.

Neil
sumber
program harus menerima I'mtetapi di sini nama skrip tidak tahu apakah itu valid, atau kecuali itu adalah penerjemah dengan skrip di jalur saat ini
Nahuel Fouilleul
1
@NahuelFouilleul Interpreternya CMD, jadi apakah itu benar-benar menyelamatkan saya 2 byte?
Neil
4

Perl 6 , 30 28 27 byte

{S/.../Hi/~", I'm Perl 6!"}

Cobalah online!

Jo King
sumber
4

Perl 5 -p , 31 24 byte

Kurangi berdasarkan klarifikasi dari OP dan saran dari @NahuelFouilleul.

/ /;$_="Hi $', $` Perl!"

Cobalah online!

Xcali
sumber
1
29 byte
Nahuel Fouilleul
1
mungkin juga $^X $]variabel khusus dapat digunakan, namun 5 lebih pendek dari$]
Nahuel Fouilleul
Apakah Anda perlu memasukkan 5sebagai bagian dari nama bahasa? yaitu dapatkah Anda berpendapat bahwa Perl 5 "menganggap dirinya" sebagai "Perl"? Itu adalah kasus sebelum Perl 6 ada, dan jawaban codegolf hanya perlu bekerja pada setidaknya satu implementasi bahasa, jadi pilih yang lama?
Peter Cordes
OP mengonfirmasi itu Perlsudah cukup. Dan bahwa penggunaan -popsi tidak harus dianggap sebagai bagian dari nama bahasa.
Peter Cordes
4

Jelly ,  16  15 byte

Ḋa⁾Hi“'ṫṗḶ/÷!Ṗ»

Program lengkap yang menerima argumen string (Python diformat) yang mencetak hasilnya.

Cobalah online!

Bagaimana?

Ḋa⁾Hi“'ṫṗḶ/÷!Ṗ» - Link: list of characters    e.g. "I'm a programmer"
Ḋ               - dequeue                          "'m a programmer"
  ⁾Hi           - pair of characters               "Hi"
 a              - logical AND (vectorises)         "Hi a programmer"
     “'ṫṗḶ/÷!Ṗ» - list of characters               ", I'm Jelly!"
                -  - since this is a new leading constant chain the previous result
                -    is implicitly printed (with no trailing newline)
                - program result is implicitly printed (again with no trailing newline)

Catatan: Ḋ⁾Hio...berfungsi juga.

Jonathan Allan
sumber
4

Jeli , 20 17 byte

ṫ4;“'ṫṗḶ/÷!Ṗ»⁾Hi;

Cobalah online!

Tautan monadik mengambil input sebagai argumennya dan mengembalikan string Jelly.

Penjelasan

ṫ4                | everything from 4th character on
  ;“'ṫṗḶ/÷!Ṗ»     | concatenate ", I’m Jelly!" to the end
             ⁾Hi; | concatenate "Hi" to the beginning
Nick Kennedy
sumber
1
Tunggu sebentar, Jelly memiliki built-in hanya untuk kata "Jelly"?
connectyourcharger Anda
3
@connectyourcharger adalah kata kamus yang dikompresi
Nick Kennedy
Ah, masuk akal
sambungkan charger Anda
4

VBA (Excel), 27 28 byte

?"Hi"Mid([A1],4)", I'm VBA!

Input masuk ke sel A1 dari Lembar Aktif di Excel, jalankan kode di Jendela Segera

Mengambil keuntungan dari fakta bahwa "SomeString"SomeValuedan SomeValue"SomeString"akan secara implisit bergabung, dan bahwa menghilangkan argumen ketiga dari MIDfungsi akan mengambil semua karakter dari akhir input - mengubahnya menjadi fungsi "dump karakter awal"

(-1 byte terima kasih kepada Shaggy, tetapi +1 ketika OP mengonfirmasi bahwa semua jawaban harus diakhiri dengan tanda seru)
(-1 byte terima kasih kepada Taylor Scott yang mengingatkan saya bahwa double-quote akhir adalah opsional)

Kronosidal
sumber
1
Bisakah Anda menghapus ruang setelah Hidan mengganti 5dengan 4?
Shaggy
@ Shaggy ... Ya, ya saya bisa. Tidak tahu bagaimana saya melewatkan itu, terima kasih
Chronocidal
1
Anda dapat menjatuhkan byte dengan menghapus yang paling terakhir "dari solusi ini, dan saat Anda menggunakan notasi evaluasi (tanda kurung siku), Anda harus menandai solusi ini sebagai Excel VBA, karena notasi itu hanya tersedia di Excel
Taylor Scott
3

05AB1E , 23 21 byte

Disimpan 2 byte berkat Kevin Cruijssen

',«#À„Hiš"05AB1E!"ªðý

Cobalah online!

Penjelasan

',«                    # append ","
   #                   # split on spaces
    À                  # rotate left
     „Hiš              # prepend "Hi"
         "05AB1E!"ª    # append the language name
                   ðý  # join on spaces
Emigna
sumber
21 byte . Dan sayang tanda seru itu ada di sana .. Karena •äƵí•hR1 byte lebih pendek dari "05AB1E". :)
Kevin Cruijssen
@KevinCruijssen: Wow! Saya merasa bodoh karena saya tidak memulai dengan ",". Ya saya sudah mencoba •äƵí•hRjuga, tetapi seperti yang Anda katakan, sayangnya tidak ada yang tersisa di sini.
Emigna
3

QuadR , 22 byte

^...
$
Hi
, I'm QuadR!

Cobalah online!

Ini menggantikan:

^... tiga karakter awal
dan
$ garis akhir

dengan

Hi
dan
,I'm QuadR
masing - masing

Adm
sumber
Jadi Anda bisa menukar dua baris tengah dan mengubah bahasa menjadi Retina dan masih mengalahkan jawaban @ KevinCruijssen?
Neil
@Neil saya kira begitu, tetapi Anda masih lebih pendek. Tbf, QuadR hanyalah penutup tipis untuk ⎕Roperator APL yang tidak dimaksudkan untuk golf .
Adám
Ah, tapi jawabanku hanya berfungsi untuk Retina 1, bukan Retina 0.8.2.
Neil
3

Retina , 22 21 byte

3L$`
Hi$', $` Retina!

Cobalah online!Tautan termasuk kasus uji. Tidak bekerja di Retina 0.8.2, jadi adaptasikan jawaban QuadR @ Adám sebagai gantinya. Penjelasan: Polanya kosong, sehingga cocok di setiap posisi dalam string input. Kami hanya membutuhkan pertandingan ketiga (atau keempat akan berhasil). Substitusi kemudian diterapkan pada pertandingan itu. Di dalam substitusi itu, $'mengacu pada sisa string dan $`merujuk awal string.

Neil
sumber
3

Retina 0.8.2 , 26 25 23 byte

^...
Hi
$
, I'm Retina!

-1 byte terima kasih kepada @attinat .
-2 byte dengan porting @ Adám 's QuadR answer , jadi pastikan untuk menambahkannya !!

PS: @Neil memposting jawaban Retina yang lebih pendek di versi baru , jadi saya telah mengubah jawaban ini menjadi Retina 0.8.2 secara eksplisit.

Cobalah online.

Penjelasan:

Ganti tiga karakter pertama dengan "Hai":

^...
Hi

Dan kemudian menambahkan tanda ", aku Retina!" (dengan mengganti ujung string):

$
, I'm Retina!
Kevin Cruijssen
sumber
1
Bukankah seharusnya seperti ini ?
Atinat
2
atau lebih baik, 25 byte
atinat
@attinat Ah, tentu saja, bahkan tidak melihat output yang salah ..>.> Dan terima kasih atas -1!
Kevin Cruijssen
3

bash, 24 byte

echo Hi ${@:2}, $1 bash!

TIO

Nahuel Fouilleul
sumber
ganti bashdengan $0untuk menyimpan beberapa byte
roblogic
1
@roblogic, $0akan mencetak nama skrip atau menjalankan bash -c 'echo Hi ${@:2}, $1 $0!' bash $@tetapi harus diperhitungkan ukurannya
Nahuel Fouilleul