Le battute di papà sono divertenti


49

Conosciamo tutti la classica battuta di papà che va in questo modo:

  1. Qualcuno dice una frase per descrivere il proprio io (es. I'm tiredO I'm confused).

  2. Arriva un appassionato di papà e risponde Hi <adjective>, I'm Dad!, perché le presentazioni seguono lo stesso formato ( I'm Petersegue lo stesso formato I'm hungry).

Il tuo compito è quello di inserire un input sotto forma di autodescrizione e di generare il modulo papà-scherzo appropriato, ma invece di usare la parola "Papà", userai il nome del linguaggio di programmazione che stai programmando nel.

Casi di test (supponiamo che vengano analizzati da 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!

Ora supponiamo che questi casi di test vengano analizzati da 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!

La sfida esatta:

  1. Accetta una stringa nel formato auto-descrittivo ( I'm <adjective>o I'm a(n) <noun>) usando l'input standard o tramite una funzione.

    • Supponiamo che non ci sia punteggiatura finale.

    • Supponiamo che la parola I'msia usata e non I am.

  2. Convertilo in un formato papà - guarda gli esempi sopra per esattamente come dovrebbe apparire.

Altre cose:


Classifica

Puoi visualizzare la classifica per questo post espandendo il widget / snippet di seguito. Affinché il tuo post sia incluso nelle classifiche, è necessario un header ( # header text) con le seguenti informazioni:

  • Il nome della lingua (termina con una virgola ,o un trattino -), seguito da ...

  • Il conteggio dei byte, come l'ultimo numero da visualizzare nell'intestazione.

Ad esempio, JavaScript (ES6), 72 bytesè valido, ma Fortran, 143 bytes (8-bit)non è valido perché il conteggio dei byte non è l'ultimo numero nell'intestazione (la risposta verrà riconosciuta come 8 byte, non approfittarne).

<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
Uno dei modi in cui ho pensato di dire alla mia famiglia che mia moglie si aspettava era raccontare quante più battute possibili di papà e vedere chi ha preso piede!
Giuseppe,

7
Alcuni output di esempio terminano con un punto esclamativo e altri no. Qual è il significato?
ricorsivo

9
La pratica abituale è di concederlo molto più a lungo prima di accettare una risposta, se lo fai affatto: codegolf.meta.stackexchange.com/q/2035/66252
user2390246

7
E il pareggio non è il voto, è chi ha raggiunto per primo il punteggio più basso.
Shaggy,

4
Ora sto aspettando la prossima lingua per giocare a golf, il nome è una stringa vuota.
640 KB

Risposte:


26

V , 13 byte

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

Provalo online!

Ispirato dalla risposta di tsh

Questo sfrutta il fatto che I'mviene strappato dall'inizio della stringa quando si elimina il testo dall'inizio e lo incolla fino alla fine con <C-r>"in modalità di inserimento.


Ho appena modificato I'mper <C-O>ppoi notato la tua risposta ...
TSH

2
Un linguaggio da golf che utilizza Vim e escaperichiede 5 caratteri ???
mowwwalker,

4
@mowwwalker Nope. È davvero il byte 0x1B, ma è più facile e più ovvio cosa significhi se lo scrivi come <esc>. Lo stesso per <C-r>, che è davvero0x12
DJMcMayhem

@DJMcMayhem, ah ha molto più senso
mowwwalker

18

C (gcc) , 59 42 33 byte

-17 byte grazie a @Conor O'Brien notando che l'importazione non era necessaria

-9 byte grazie a @tsh sottolineando un modo UB più breve di scrivere la funzione

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

Provalo online!

Taglia i primi 3 caratteri dell'input (rimuove I'm) e lo circonda con il testo desiderato.


Il programma viene compilato senza l'importazione, quindi è possibile rilasciarlo per 42 byte.
Conor O'Brien,

@ ConorO'Brien bella cattura!
Neil A.

3
E int anche è facoltativo.
TSH

2
(?) E anche il char*, forse ...; così a(x){printf("Hi%s, I'm C!",x+3);}dovrebbe funzionare
TSH

2
@tsh: sì, in pratica funzionerà con la maggior parte delle implementazioni C a 32 bit (dove un intpuò contenere un char*senza troncarlo), nonostante il comportamento indefinito. Su x86-64 gcc su Linux, fallirà sempre in un eseguibile PIE (in genere nessun puntatore si trova nei 32 bit bassi dello spazio di indirizzi virtuale e gcc non capita di copiare i 32 bit alti durante il calcolo x+3dalla funzione arg in il registro RDI). Ma in un eseguibile non PIE, gli indirizzi statici si trovano nei 31 bit bassi dello spazio degli indirizzi virtuali, quindi se il chiamante ha passato una stringa letterale o un buffer statico, funzionerebbe.
Peter Cordes,

16

V , 13 byte

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

Provalo online!

Nuovo a V. Lo sapevo solo circa 30 minuti fa. Comunque, questa lingua viene scelta solo perché il suo nome costa solo 1 byte. Non sono sicuro di come inviare la <End>chiave in V. La maggior parte dell'ambiente vim accetterebbe <End>in sostituzione di <Esc>Aquesto esempio. Ma, sai, V ha 2 caratteri in meno di VIM. :)

Grazie a @Candy Gumdrop , salva 1 byte.


1
Potrebbe salvare un byte cambiando c3lin cE.
Candy Gumdrop

@CandyGumdrop Wow, non conoscevo maiuscole Eprima.
TSH

Potresti anche fare cW(che sembra diverso, ma in realtà è identico a cE) o 3s. Bel lavoro! Stavo per pubblicare quasi questa risposta esatta quando ho visto che c'erano già risposte a 2 V, che è stata una bella sorpresa. Ho provato diversi approcci, ma non sono sicuro se sarà possibile ottenere <13 byte.
DJMcMayhem

11

Stax , 13 byte

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

Esegui ed esegui il debug

Disimballato, non golfato e commentato, sembra così.

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

Ho spostato il commento finale di una riga poiché nulla può seguire una stringa non terminata letterale.

Esegui questo


Ti dichiarerò il vincitore perché il tuo post ha avuto più voti, ma tecnicamente sei stato legato con un'altra persona. Congratulazioni!
connectyourcharger

10

brainfuck, 164

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

Provalo online!

Il "brainfuck!" parte della stringa viene generata con questo strumento, probabilmente può essere ulteriormente golfata a mano.


2
Prova BF Crunch
Jo King

10

Excel, 36 33 byte

-3 byte grazie a Johan du Toit.

L'ingresso va in A1.

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

Primo tentativo:

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

="Hi "&MID(B13,4,99)&", I'm Excel"34 byte
Johan du Toit

Grazie @JohanduToit. A1invece di B1333 byte.
Wernisch,

8

Python 3 , 35 34 byte

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

Provalo online!

-1 byte grazie a Embodiment of Ignorance

Anche 34 byte, utilizzando le più recenti stringhe formattate, grazie a Gábor Fekete:

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

Provalo online!



Che dire di perdere lambda s:e sostituire %s[3:]con %input()[3:]? (-4 byte)
niko

@niko se capisco quello che stai dicendo, questo non stamperà nulla. Le regole predefinite su questo sito sono un programma completo che stampa l'output o una funzione che restituisce l'output. Di solito quello che stai suggerendo è chiamato snippet e non sarebbe una soluzione completa, dovrebbe essere racchiuso print()per altri 7 byte, motivo per cui le risposte di Python di solito usano lambda.
Stephen,

Ma in cosa differisce dalla tua (e in realtà la maggior parte) risposta (e) qui? Intendo dire che entrambi non stampano nulla ed entrambi restituiscono lo stesso risultato giusto? (Abbastanza nuovo qui - mi sto ancora abituando a CG)
niko

2
@niko Va bene! Con lambda s, ho definito una funzione (anonima). Se guardi l'intestazione e il piè di pagina nel collegamento TIO, assegno questa funzione fe quindi la chiamo con f("I'm whatever"). Quindi la funzione restituisce l'output previsto. Con il tuo frammento, non stampi né ritorni da una funzione: hai solo un po 'di codice che valuta il risultato corretto, ma non fa nulla con esso. Puoi eseguire programmi più volte, puoi chiamare funzioni più volte, ma uno snippet è solo uno snippet.
Stephen,

6

R 45 44 39 byte

@Giuseppe Edit

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

@AaronHayman Edit

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

Provalo online!


può salvare un byte sostituendolo "(I'm )con"(.* )
Aaron Hayman

1
@AaronHayman, non funziona per I'm a programmer(molti spazi) a causa dell'avidità
Nahuel Fouilleul

@NahuelFouilleul Giusto, non ero sicuro che il primo o l'ultimo spazio bianco fosse considerato.
niko,

1
Ok, ho salvato un byte e penso che questo funzioni
Aaron Hayman,

2
2 byte modificando subin "I'm(.*)" and "Hi\\1, I'm R"e 3 byte prendendo l'input da stdin usando scan: Provalo online
Giuseppe,

6

PHP ,34 32 byte

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

Provalo online!

Inserire tramite STDIN, chiamare con -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!

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

smontato:

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

Un programma DOS eseguibile autonomo. Input dalla riga di comando, output sullo schermo.

inserisci qui la descrizione dell'immagine

Scarica e prova DAD.COM .

* Il nome esatto di "linguaggio" qui è un po 'ambiguo in quanto il codice macchina della CPU non è in realtà un linguaggio in senso formale. Andare con "x86" come nome generalmente compreso e accettato per la piattaforma di destinazione.


[spostando il commento in basso dal thread principale] Direi che "x86" è l'architettura, mentre "MA SM" sarebbe uno dei linguaggi disponibili su quell'architettura (nota che ha uno spazio in esso però).
Jonathan Allan

5
Penso che "x86" probabilmente stia bene, dopotutto è golf :)
Jonathan Allan


5

Spazio bianco , 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]

Lettere S(spazio), T(scheda) e N(nuova riga) aggiunti solo come evidenziazione.
[..._some_action]aggiunto solo come spiegazione.

Poiché Whitespace inserisce un carattere alla volta, l'input dovrebbe contenere una nuova riga finale in modo che sappia quando interrompere la lettura dei caratteri e l'input viene eseguito.

Provalo online (solo con spazi non elaborati, schede e nuove righe).

Spiegazione in pseudo-codice:

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 caratteri di ", I'm Whitespace!"vengono inseriti in ordine inverso e quindi stampati in un ciclo. Tutti i valori di questi caratteri vengono inoltre ridotti di 102, che vengono aggiunti nel ciclo prima della stampa per salvare byte. Questa costante 102 per abbassare ogni carattere è generata con questo programma Java . Inoltre, invece di premere -70due volte il valore per entrambi gli spazi, il secondo spazio "!ecapsetihW m'I ,"viene copiato dal primo con il comando Copia incorporato per salvare alcuni byte.


5

Linguaggio formula IBM / Lotus Notes, 61 62 byte

+1 perché non avevo notato il !alla fine dell'output.

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

Formula di campo calcolata che accetta l'input da un campo modificabile i. Non avrebbe funzionato per "I'm an I'm", ma dal momento che non avrebbe alcun senso, suppongo che non accadrà.

Peccato che a 32 byte, il nome della lingua sia più della metà della lunghezza totale della formula!

Schermata seguente che mostra un esempio di input e output:

inserisci qui la descrizione dell'immagine


5
Sembra che la tua lingua sarebbe buona per il lavoro se il nome non fosse così lungo :)
connectyourcharger

se fossi serio, probabilmente lo chiamerei semplicemente Formulacome è indicato nella comunità di sviluppatori di Notes / Domino :-)
ElPedro

1
@PeterCordes - Possibile, ma Lotus Notes / Domino ha anche LotusScript come linguaggio integrato, quindi probabilmente dovremo essere un po 'più specifici ;-)
ElPedro

1
Potrebbe effettivamente andare un po 'meglio di quello da quando IBM lo ha rinominato in IBM Notes ma poi hanno nuovamente rinominato in IBM Domino, quindi suppongo che per essere esattamente corretto dovrebbe essere "Ciao @PeterCordes, sono IBM Domino Formula" :)
ElPedro

1
@PeterCordes Sono richieste solo le parti essenziali del nome della lingua: accetto Perluna sostituzione per Perl 5o Perl 5 -p.
connectyourcharger

5

sed ( -r), 31 28 25 byte

-3 byte grazie a Shaggy -3 byte perché -rnon necessari nell'output

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

TIO



Hmm ... Il nostro modo di aggirare il conteggio delle bandiere è stato quello di dichiararle come lingue diverse, quindi penso che potresti aver bisogno di questo, -rma varrebbe la pena convincere Meta a pesarci sopra.
Shaggy,

ho rimosso a causa della risposta perl 5 e dei commenti
Nahuel Fouilleul,

5

Japt , 18 byte

`Hi{s3}, I'm Japt!

Quando la libreria di compressione string di Japt raggiunge una compressione 0% ...

Provalo

Un'altra alternativa a 18 byte:

`Hi{Ť}, {¯4}Japt!

1
... ma batte ancora Jelly e 05AB1E :)
Shaggy

5

Ottava , 35 byte

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

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

Ho provato a recuperare "Octave" in qualche modo, senza scriverlo, dal momento che 6 caratteri è parecchio paragonato ad altri nomi di altre lingue qui. Sfortunatamente, ho potuto solo trovare ver, che genera uno struct con campi separati da virgola. Richiede più di 6 byte. :(

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

Provalo online!


5

Rubino -p , 32 27 26 byte

-5 byte sfruttando la risposta Jelly di Nick Kennedy .

-1 byte dalla divisione in un punto diverso nella stringa. Ho anche capito che il mio vecchio byte era sbagliato.

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

Spiegazione

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

Provalo online!


Freddo! Dov'è il tuo contributo?
connectyourcharger

@connectyourcharger ha aggiunto una spiegazione. L'ingresso è STDIN.
Value Ink

Gotcha. Buona risposta!
connectyourcharger


4

Lotto, 22 + 3 = 25 byte

@echo Hi %*, %0 Batch!

+3 byte per la denominazione di questo file I'm(con l' .batestensione richiesta per i file batch). Invoca come I'm hungry, quando risuonerà Hi hungry, I'm Batch!.


programma dovrebbe ricevere I'mma qui è il nome dello script non so se è valido, o se non è l'interprete con lo script nel percorso corrente
Nahuel Fouilleul

1
@NahuelFouilleul L'interprete è CMD, quindi mi risparmierebbe 2 byte?
Neil,


4

Perl 5 -p , 31 24 byte

Riduzione in base ai chiarimenti dell'OP e a un suggerimento di @NahuelFouilleul.

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

Provalo online!



1
anche forse $^X $]potrebbero essere utilizzate variabili speciali, tuttavia 5 è più breve di$]
Nahuel Fouilleul

Ti serve? di includere il 5come parte del nome del linguaggio? cioè potresti sostenere che Perl 5 "pensa a se stesso" come "Perl"? Questo era il caso prima dell'esistenza di Perl 6, e le risposte di codegolf devono solo lavorare su almeno un'implementazione della lingua, quindi scegline una vecchia?
Peter Cordes,

OP conferma che Perlè sufficiente. E che l'uso -pdell'opzione non deve essere considerato parte del nome della lingua.
Peter Cordes,

4

Gelatina ,  16  15 byte

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

Un programma completo che accetta un argomento di stringa (formattato in Python) che stampa il risultato.

Provalo online!

Come?

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

Nota: Ḋ⁾Hio...funziona anche.


4

Gelatina , 20 17 byte

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

Provalo online!

Un collegamento monadico che prende l'input come argomento e restituisce una stringa Jelly.

Spiegazione

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

1
Aspetta, Jelly ha un built-in solo per la parola "Jelly"?
connectyourcharger

3
@connectyourcharger è una parola del dizionario compresso
Nick Kennedy,

Ah, questo ha senso
collega

4

VBA (Excel), 27 28 byte

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

L'input va nella cella A1 del foglio attivo in Excel, esegui il codice nella finestra immediata

Sfrutta il fatto che "SomeString"SomeValueeSomeValue"SomeString" si concatenerà implicitamente e che omettendo il terzo argomento dalla MIDfunzione prenderà tutti i caratteri dalla fine dell'input, trasformandolo in una funzione "dump iniziale di caratteri"

(-1 byte grazie a Shaggy, ma +1 quando OP ha confermato che tutte le risposte dovrebbero terminare con un punto esclamativo)
(-1 byte grazie a Taylor Scott che mi ricorda che la doppia virgoletta finale era facoltativa)


1
Potresti rimuovere lo spazio dopo Hie sostituirlo 5con 4?
Shaggy,

@Shaggy ... Sì, sì, potrei. Non ho idea di come mi sia perso, grazie
Chronocidal,

1
Puoi eliminare un byte rimuovendo l'ultimo "da questa soluzione e mentre usi la notazione di valutazione (le parentesi quadre) dovresti contrassegnare questa soluzione come Excel VBA, poiché quella notazione è disponibile solo in Excel
Taylor Scott


3

05AB1E , 23 21 byte

Salvato 2 byte grazie a Kevin Cruijssen

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

Provalo online!

Spiegazione

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

21 byte . E peccato che il punto esclamativo sia lì .. Poiché •äƵí•hRè 1 byte più corto di "05AB1E". :)
Kevin Cruijssen

@KevinCruijssen: Wow! Mi sento stupido di non aver iniziato con il ",". Sì, ci ho provato anche io •äƵí•hR, ma come dici tu, sfortunatamente non salva qui.
Emigna

3

QuadR , 22 byte

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

Provalo online!

Questo sostituisce:

^... tre caratteri iniziali
e
$ la fine della riga

con

Hi
e
,I'm QuadR
rispettivamente


Quindi potresti scambiare le due righe centrali e cambiare la lingua in Retina e comunque battere la risposta di KevinCruijssen?
Neil,

@Neil credo di si, ma il tuo è ancora più breve. Tbf, QuadR non è che una copertura sottile per l' ⎕Roperatore APL non destinato al golf .
Adám

Ah, ma la mia risposta funziona solo per Retina 1, non per Retina 0.8.2.
Neil

3

Retina , 22 21 byte

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

Provalo online! Il link include casi di test. Non funziona in Retina 0.8.2, quindi adatta invece la risposta QuadR di @Adám. Spiegazione: Il modello è vuoto, quindi corrisponde in ogni posizione nella stringa di input. Tuttavia abbiamo solo bisogno della terza (o quarta soluzione). La sostituzione viene quindi applicata a quella partita. All'interno di quella sostituzione, si $'riferisce al resto della stringa e $`all'inizio della stringa.


3

Retina 0.8.2 , 26 25 23 byte

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

-1 byte grazie a @attinat .
-2 byte eseguendo il porting della risposta QuadR di @Adám , quindi assicurati di votarlo !!

PS: @Neil ha pubblicato una risposta Retina più breve nella nuova versione , quindi ho modificato esplicitamente questa risposta in Retina 0.8.2.

Provalo online.

Spiegazione:

Sostituisci i primi tre caratteri con "Ciao":

^...
Hi

E poi aggiungi un finale ", sono Retina!" (sostituendo la fine della stringa):

$
, I'm Retina!

1
Non dovrebbe essere come questo , invece?
attinat

2
o meglio, 25 byte
attinat

@attinat Ah, certo, non avevo nemmeno notato l'output errato ..>.> E grazie per il -1!
Kevin Cruijssen,

3

bash, 24 byte

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

TIO


sostituire bashcon $0per salvare un paio di byte
roblogic

1
@roblogic, $0stamperebbe il nome dello script o funzionerà, bash -c 'echo Hi ${@:2}, $1 $0!' bash $@ma dovrebbe contare in termini di dimensioni
Nahuel Fouilleul,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.