Тато жарти весело


49

Всі ми знаємо класичний анекдот, який іде приблизно так:

  1. Хтось каже речення, щоб описати своє «я» (наприклад, I'm tiredабо I'm confused).

  2. Ентузіаст тато-анекдоту приходить і відповідає Hi <adjective>, I'm Dad!, тому що вступи дотримуються того самого формату ( I'm Peterдотримується того ж формату, що і I'm hungry).

Ваше завдання - взяти вхід у вигляді самописка та вивести відповідну тато-жартівливу форму, але замість того, щоб використовувати слово "тато", ви будете використовувати назву мови програмування, яку програмуєте в.

Тестові приклади (припустимо, що вони розбираються 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!

Тепер припустимо, що ці тестові випадки аналізуються 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!

Точний виклик:

  1. Візьміть рядок у форматі самодискриптора ( I'm <adjective>або I'm a(n) <noun>), використовуючи стандартний ввід або через функцію.

    • Припустимо, що немає закінчення пунктуації.

    • Припустимо, слово I'mвживається, а не I am.

  2. Перетворіть його у формат тату-жарту - див. Вищенаведені приклади, як саме це повинно виглядати.

Інші речі:


Таблиця лідерів

Ви можете переглянути таблицю лідерів цієї публікації, розгорнувши віджет / фрагмент нижче. Для того, щоб ваша публікація була включена до рейтингу, вам потрібен заголовок ( # header text) з такою інформацією:

  • Назва мови (закінчте її комою ,чи тире -), а потім ...

  • Кількість байтів як останнє число, яке з’явиться у вашому заголовку.

Наприклад, JavaScript (ES6), 72 bytesє дійсним, але Fortran, 143 bytes (8-bit)недійсним, оскільки кількість байтів не є останнім номером у заголовку (ваша відповідь буде розпізнана як 8 байт - не користуйтеся цим).

<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>


39
Один із способів я роздумав сказати моїй родині про те, що моя дружина очікувала - розповісти якомога більше татових жартів і побачити, хто на кого попався!
Джузеппе

7
Деякі приклади виходів закінчуються вигуком, а деякі ні. Яке значення?
рекурсивний

9
Звичайна практика - це давати набагато довше, перш ніж приймати відповідь, якщо ви це зробите взагалі: codegolf.meta.stackexchange.com/q/2035/66252
user2390246

7
А переривник не є голосами, саме той, хто першим досяг найнижчого балу.
Кудлатий

4
Тепер чекаємо наступної мови для гри в гольф, назва якої - порожня рядок.
640 Кб

Відповіді:


26

V , 13 байт

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

Спробуйте в Інтернеті!

Натхненний відповіддю tsh

Для цього використовується той факт, що I'mвикреслюється з початку рядка при видаленні тексту з початку, і <C-r>"вставляє його до кінця, перебуваючи в режимі вставки.


Я просто відредагований , I'mщоб <C-O>pі зверніть увагу на те ваша відповідь ...
TSH

2
Мова для гольфу, що використовує Vim та escapeзаймає 5 символів ???
mowwwalker

4
@mowwwalker Nope. Це справді байт 0x1B, але простіше і зрозуміліше, що це означає, якщо ви пишете його як <esc>. Те саме для <C-r>, що є насправді0x12
DJMcMayhem

@DJMcMayhem, ах, це має набагато більше сенсу
mowwwalker

18

C (gcc) , 59 42 33 байт

-17 байт завдяки @Conor O'Brien помітив, що імпорт не був необхідним

-9 байт завдяки @tsh вказує на коротший, UB спосіб написання функції

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

Спробуйте в Інтернеті!

Відсікає перші 3 символи вводу (видаляє I'm) і оточує його потрібним текстом.


Програма компілюється без імпорту, тому ви можете скинути її на 42 байти.
Conor O'Brien

@ ConorO'Brien приємний вилов!
Ніл А.

3
І також int є необов'язковим.
тш

2
(?) І також char*, можливо ...; так a(x){printf("Hi%s, I'm C!",x+3);}має працювати
тш

2
@tsh: так, на практиці це буде працювати в більшості 32-бітних реалізацій C (де А intможе вмістити char*без обрізання), незважаючи на не визначену поведінку. У x86-64 gcc в Linux, він завжди не може працювати у виконаному файлі PIE (зазвичай жодні покажчики не містять 32-бітні віртуального простору адреси, і gcc не станеться копіювати високі 32 біти під час обчислення x+3з аргументу функції в реєстр RDI). Але у виконаному не PIE статичному адресі знаходиться в низькому 31 біті віртуального адресного простору, тому, якщо абонент передав рядковий літерал або статичний буфер, це станеться спрацьовуючим.
Пітер Кордес

16

V , 13 байт

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

Спробуйте в Інтернеті!

Нове для V. Просто знав це близько 30 хвилин тому. У будь-якому випадку ця мова обрана лише тому, що її назва коштувала лише 1 байт. Я не впевнений, як надіслати <End>ключ у V. Більшість середовищ vim прийняли <End>б заміну <Esc>Aв цьому прикладі. Але, знаєте, V на 2 символи коротший, ніж vim. :)

Завдяки @Candy Gumdrop економить 1 байт.


1
Не c3lвдалося зберегти один байт, змінивши на cE.
Candy Gumdrop

@CandyGumdrop Нічого собі, я не знав верхнього регістру Eраніше.
тш

Ви також можете зробити cW(що здається інакшим, але насправді ідентичним cE) або 3s. Хороша робота! Я збирався опублікувати майже таку точну відповідь, коли побачив, що вже є 2 V відповіді, що було приємним сюрпризом. Я спробував кілька різних підходів, але не впевнений, чи вдасться отримати <13 байт.
DJMcMayhem

11

Стакс , 13 байт

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

Запустіть і налагоджуйте його

Розпакований, неозорений та прокоментований, це виглядає приблизно так.

.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_

Я перемістив остаточний коментар вгору на один рядок, оскільки ніщо не може слідувати невстановленому літеральному рядку.

Виконати цей


Я буду оголосити вас переможцем, оскільки у вашій посаді було більше голосів, але ви технічно були пов'язані з однією іншою людиною. Вітаємо!
Підключіть свій зарядний пристрій

10

мозковий ебать, 164

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

Спробуйте в Інтернеті!

"Нахабний!" частина струни генерується за допомогою цього інструменту, ймовірно, можна буде вручну гольфу вручну.


2
Спробуйте BF Crunch
Jo King

10

Excel, 36 33 байт

-3 байти завдяки Йохану дю Тою.

Введення йде в A1.

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

Перша спроба:

=REPLACE(A1,1,3,"Hi")&", I'm Excel!"

="Hi "&MID(B13,4,99)&", I'm Excel"34 байти
Йоган дю Тойт

Дякую @JohanduToit A1замість B13цього насправді 33 байти.
Верніш

8

Python 3 , 35 34 байти

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

Спробуйте в Інтернеті!

-1 байт завдяки втіленню невігластва

Також 34 байти, використовуючи нові форматизовані рядки, завдяки Gábor Fekete:

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

Спробуйте в Інтернеті!



Як щодо втрати lambda s:та заміни %s[3:]з %input()[3:]? (-4 байти)
niko

@niko, якщо я розумію, що ти говориш, нічого не надрукуєш. Правила за замовчуванням на цьому сайті - це або повна програма, яка друкує вихід, або функція, яка повертає результат. Зазвичай те, що ви пропонуєте, називається фрагментом, і це не буде повноцінним рішенням, його потрібно буде обгортати ще print()на 7 байтів, саме тому відповіді Python зазвичай використовують лямбда.
Стефан

Але чим це відрізняється від вашої (і насправді більшості) відповідей тут? Я маю на увазі, що обидва самі нічого не друкують, і обидва повертають один і той же вихід правильно? (Тут досить нове - все ще звикає до CG)
niko

2
@niko Це нормально! З lambda s, я визначив (анонімну) функцію. Якщо ви подивитеся на заголовок та колонтитул у посиланні TIO, я назвав цю функцію f, а потім назвав її f("I'm whatever"). Потім функція повертає очікуваний вихід. Зі своїм фрагментом ви ні друкуєте, ні повертаєтесь із функції - у вас просто є трохи коду, який оцінює правильний результат, але нічого з цим не робить. Ви можете запускати програми кілька разів, ви можете викликати функції кілька разів, але фрагмент - це просто фрагмент.
Стефан

6

R 45 44 39 байт

@Giuseppe Редагувати

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

@AaronHayman Редагувати

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

Спробуйте в Інтернеті!


можна зберегти один байт замінивши "(I'm )на"(.* )
Аарон Хейман

1
@AaronHayman, не працює I'm a programmer( для багатьох просторів) через
жадібність

@NahuelFouilleul Правильно, я не був впевнений, що перший чи останній пробіл буде врахований.
niko

1
Гаразд, я зберег байт, і я думаю, що цей працює належним чином. Спробуйте в Інтернеті!
Аарон Гейман

2
2 байта шляхом зміни subдо "I'm(.*)" and "Hi\\1, I'm R"і 3 байта, приймаючи вхідні дані зі стандартного вводу з допомогою scan: Спробуйте онлайн
Giuseppe


6

x86 ,37 36 байт

$ 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!$

Не зібрано:

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!$"  

Автономна виконувана програма DOS. Введення з командного рядка, вихід на екран.

введіть тут опис зображення

Завантажте та протестуйте DAD.COM .

* Точна назва мови тут трохи неоднозначна, оскільки машинний код процесора насправді не є мовою у формальному розумінні. Перехід з "x86" як загальнозрозуміле і прийняте ім'я для цільової платформи.


[переміщення коментаря до основного потоку] Я б сказав, що "x86" - це архітектура, тоді як "MA SM" - це одна з доступних мов цієї архітектури (зауважте, що в ній є пробіл).
Джонатан Аллан

5
Я думаю, що "x86", мабуть, добре насправді, це все-таки гольф :)
Джонатан Аллан


5

Пробіл , 267 байт

[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]

Букви S(пробіл), T(вкладка) та N(новий рядок) додаються лише як підкреслення.
[..._some_action]додано лише як пояснення.

Оскільки пробіли вводять по одному символу, вхід повинен містити зворотний новий рядок, щоб він знав, коли потрібно зупинити читання символів, і введення зроблено.

Спробуйте в Інтернеті (лише із необробленими пробілами, вкладками та новими рядками).

Пояснення в псевдокоді:

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

Символи ", I'm Whitespace!"висуваються у зворотному порядку, а потім друкуються у циклі. Усі значення цих символів також знижуються на 102, які додаються у циклі перед друком для збереження байтів. Ця константа 102 для опускання кожного символу генерується за допомогою цієї програми Java . Крім того, замість того, щоб -70двічі натискати значення для обох пробілів, другий пробіл у "!ecapsetihW m'I ,"копіюється з першого з вбудованим Copy, щоб зберегти кілька байт.


5

Мова формули IBM / Lotus Notes, 61 62 байт

+1, тому що я не помітив !кінця результату.

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

Формула обчисленого поля, яка приймає його з редагованого поля i. Це не вдасться "Я є Я", але оскільки це взагалі не має сенсу, я припускаю, що цього не відбудеться.

Ганьба, що в 32 байтах назва мови становить більше половини загальної довжини формули!

Скріншот нижче, що показує приклад введення та виведення:

введіть тут опис зображення


5
Схоже, ваша мова була б корисною для роботи, якби ім’я було не таким довгим :)
connectyourcharger

якби я був серйозним, я, мабуть, просто назвав би Formulaце, як саме це згадується у спільноті розробників Notes / Domino :-)
ElPedro

1
@PeterCordes - Можливо, але Lotus Notes / Domino також має LotusScript як вбудовану мову, тому нам, мабуть, потрібно бути трохи більш конкретними ;-)
ElPedro

1
Насправді це може бути трохи кращим, ніж IBM ребрендинг його до IBM Notes, але потім вони знову ребрендинг IBM IBM Domino, тому я думаю, що щоб бути строго правильним, це повинно бути "Привіт @PeterCordes, я IBM Domino Formula" :)
ElPedro

1
@PeterCordes Потрібні лише основні частини назви мови - я приймаю Perlяк заміну на Perl 5або Perl 5 -p.
Підключіть свій зарядний пристрій

5

sed ( -r), 31 28 25 байт

-3 байти завдяки Shaggy -3 байтам, тому що вони -rне потрібні для виводу

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

ТІО



Хм ... Наш шлях до підрахунку прапорів полягав у тому, щоб оголосити їх різними мовами, тому я думаю, що вам може знадобитися, -rале варто було б отримати мета для зважування.
Кудлатий

мене видалили з-за відповіді та коментарів Perl 5
Nahuel Fouilleul


5

Октава , 35 байт

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

Спробуйте в Інтернеті!

@(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 байти:

Я спробував якось витягнути "Октаву", не виписуючи її, оскільки 6 символів - це досить багато в порівнянні з деякими іншими назвами мов. На жаль, я міг лише знайти ver, який виводить структуру з розділеними комами полями. Посідає більше 6 байт. :(

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

Спробуйте в Інтернеті!


5

Рубі -p , 32 27 26 байт

-5 байт, використовуючи відповідь Желі Ніка Кеннеді .

-1 байт від розщеплення в іншій точці рядка. Також зрозумів, що мій старий обліковий запис був неправильним.

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

Пояснення

                            # -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

Спробуйте в Інтернеті!


Класно! Де ваш внесок?
підключитимобільний зарядник

@connectyourcharger додав пояснення. Вхід - STDIN.
Значення чорнила

Готча. Хороша відповідь!
Підключіть свій зарядний пристрій


4

Пакетна, 22 + 3 = 25 байт

@echo Hi %*, %0 Batch!

+3 байти для іменування цього файлу I'm(з необхідним .batрозширенням для пакетних файлів). Викликати як I'm hungry, коли це лунатиме Hi hungry, I'm Batch!.


Програма повинна отримати, I'mале ось це ім'я скрипта не знаю, чи він дійсний, або якщо це не інтерпретатор зі сценарієм у поточному шляху
Nahuel Fouilleul

1
@NahuelFouilleul Інтерпретатор є CMD, так що, що насправді врятує мене 2 байти?
Ніл


4

Perl 5 -p , 31 24 байт

Виріжте на основі роз'яснень від ОП та пропозиції від @NahuelFouilleul.

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

Спробуйте в Інтернеті!



1
також, можливо, $^X $]можуть бути використані спеціальні змінні, проте 5 коротше, ніж$]
Науель Фуле,

Чи потрібно включати 5як частину назви мови? тобто ви можете стверджувати, що Perl 5 "думає про себе" як "Perl"? Так було раніше, ніж існував Perl 6, і відповіді кодегольфа потребують лише роботи принаймні на одній реалізації мови, тож виберіть стару?
Пітер Кордес

ОП підтверджує, що Perlцього достатньо. І що використання -pопції не повинно вважатися частиною назви мови.
Пітер Кордес

4

Желе ,  16  15 байт

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

Повна програма, що приймає рядковий аргумент (відформатований Python), який друкує результат.

Спробуйте в Інтернеті!

Як?

Ḋ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)

Примітка: також Ḋ⁾Hio...працює.


4

Желе , 20 17 байт

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

Спробуйте в Інтернеті!

Монадична посилання, яка бере свій вклад як аргумент і повертає рядок Jelly.

Пояснення

ṫ4                | everything from 4th character on
  ;“'ṫṗḶ/÷!Ṗ»     | concatenate ", I’m Jelly!" to the end
             ⁾Hi; | concatenate "Hi" to the beginning

1
Почекай, у Jelly є вбудований лише для слова "желе"?
Підключітьзарядний пристрій

3
@connectyourcharger це стисне словникове слово
Нік Кеннеді


4

VBA (Excel), 27 28 байт

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

Введення надходить у комірку A1 активного листа в Excel, запустіть код у вікні негайних

Скористається тим, що "SomeString"SomeValueі SomeValue"SomeString"буде неявно об'єднатися, і що, опустивши третій аргумент з MIDфункції, візьме всіх символів з кінця введення - перетворивши його на функцію "скидання початкових символів"

(-1 байт завдяки Шаггі, але +1, коли ОП підтвердило, що всі відповіді повинні закінчуватися знаком оклику)
(-1 байт завдяки Тейлору Скотту, який нагадував мені, що остаточна подвійна цитата не є обов'язковою)


1
Чи можете ви видалити пробіл після Hiі замінити 5на 4?
Кудлатий

@Shaggy ... Так, так, я міг би. Не знаю, як я пропустив це, дякую
Хроноцид

1
Ви можете скинути байт, видаливши останнє "з цього рішення, і, використовуючи позначення оцінки (квадратні дужки), ви повинні позначити це рішення як Excel VBA, оскільки це позначення доступне лише в Excel
Тейлор Скотт


3

05AB1E , 23 21 байт

Збережено 2 байти завдяки Kevin Cruijssen

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

Спробуйте в Інтернеті!

Пояснення

',«                    # append ","
   #                   # split on spaces
    À                  # rotate left
     „Hiš              # prepend "Hi"
         "05AB1E!"ª    # append the language name
                   ðý  # join on spaces

21 байт . І занадто поганий знак оклику є. Оскільки •äƵí•hRна 1 байт коротше "05AB1E". :)
Кевін Круїссен

@KevinCruijssen: Нічого собі! Я відчуваю себе дурним, що я не починав з ",". Так, я також спробував •äƵí•hR, але, як ви кажете, це, на жаль, тут не рятує.
Емінья

3

QuadR , 22 байти

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

Спробуйте в Інтернеті!

Це замінює:

^... три початкові символи
та
$ кінець рядка

з

Hi
і
,I'm QuadR
відповідно


Тож ви могли обмінятись середніми двома рядками та змінити мову на Retina та все одно перемогти відповідь @ KevinCruijssen?
Ніл

@Neil Я думаю, що так, але ваш все ще коротший. Tbf, QuadR є лише тонкою кришкою для не призначеного для гольфу ⎕Rоператора APL.
Адам

Так, але моя відповідь працює лише для Retina 1, але не для Retina 0.8.2.
Ніл

3

Сітківка , 22 21 байт

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

Спробуйте в Інтернеті! Посилання включає тестові випадки. Не працює в Retina 0.8.2, тому замість цього адаптуйте відповідь QuadR @ Adám. Пояснення: Шаблон порожній, тому він відповідає кожній позиції вхідного рядка. Нам потрібен лише третій (або четвертий, який би працював) матч. Потім заміна застосовується до цього матчу. У межах цієї підстановки $'посилається на решту рядка і $`посилається на початок рядка.


3

Сітківка 0,8.2 , 26 25 23 байти

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

-1 байт завдяки @attinat .
-2 байти, перенісши відповідь QuadR @ Адама , тому обов'язково підтримайте його !!

PS: @Neil опублікував коротшу відповідь Retina у новій версії , тому я чітко змінив цю відповідь на Retina 0.8.2.

Спробуйте в Інтернеті.

Пояснення:

Перші три символи замініть на "Привіт":

^...
Hi

А потім додайте останнє "Я - Сітка!" (замінивши кінець рядка):

$
, I'm Retina!

1
Чи не повинен бути такий натомість?
attinat

2
або краще, 25 байт
attinat

@attinat Ах, звичайно, навіть не помітив неправильного виходу ..>.> І дякую за -1!
Кевін Круїссен

3

баш, 24 байти

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

ТІО


замінити bashз , $0щоб заощадити пару байт
roblogic

1
@roblogic, $0надрукував би ім'я сценарію або працює, bash -c 'echo Hi ${@:2}, $1 $0!' bash $@але слід рахувати розмір
Nahuel Fouilleul
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.