Los chistes de papá son divertidos


49

Todos conocemos el clásico chiste de papá que dice algo así:

  1. Alguien dice una oración para describirse a sí mismo (p . Ej. I'm tiredO I'm confused).

  2. Aparece un entusiasta de bromas de papá y responde Hi <adjective>, I'm Dad!, porque las presentaciones siguen el mismo formato ( I'm Petersigue el mismo formato que I'm hungry).

Su trabajo es tomar una entrada en forma de autodescriptor y generar el formulario de broma de papá apropiado, pero en lugar de usar la palabra "papá", usará el nombre del lenguaje de programación que está programando en.

Casos de prueba (suponga que Python los está analizando):

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!

Ahora suponga que Golfscript analiza estos casos de prueba:

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!

El desafío exacto:

  1. Tome una cadena en el formato de autodescripción ( I'm <adjective>o I'm a(n) <noun>) usando la entrada estándar o mediante una función.

    • Suponga que no hay puntuación final.

    • Suponga que la palabra I'mse usa y no I am.

  2. Conviértalo a un formato de broma de papá: vea los ejemplos anteriores para saber exactamente cómo debería verse.

Otras cosas:


Tabla de clasificación

Puede ver la tabla de clasificación para esta publicación expandiendo el widget / fragmento a continuación. Para que su publicación se incluya en las clasificaciones, necesita un encabezado ( # header text) con la siguiente información:

  • El nombre del idioma (finalícelo con una coma ,o guión -), seguido de ...

  • El recuento de bytes, como el último número que aparece en su encabezado.

Por ejemplo, JavaScript (ES6), 72 byteses válido, pero Fortran, 143 bytes (8-bit)no es válido porque el recuento de bytes no es el último número en el encabezado (su respuesta se reconocerá como 8 bytes; no aproveche esto).

<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
¡Una de las formas en que consideré decirle a mi familia lo que mi esposa esperaba era contar tantos chistes de papá como fuera posible y ver quién entendía!
Giuseppe

77
Algunos resultados de ejemplo terminan con exclamación y otros no. ¿Cuál es el significado?
recursivo

99
La práctica habitual es darle mucho más tiempo antes de aceptar una respuesta, si es que lo hace: codegolf.meta.stackexchange.com/q/2035/66252
user2390246

77
Y el desempate no son los votos, es quien alcanzó el puntaje más bajo primero.
Shaggy

44
Ahora esperando el próximo idioma de golf cuyo nombre es una cadena vacía.
640 KB

Respuestas:


26

V , 13 bytes

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

Pruébalo en línea!

Inspirado por la respuesta de tsh

Esto aprovecha el hecho de que I'mse arranca desde el inicio de la cadena al eliminar el texto desde el principio y se pega al final con el <C-r>"modo de inserción.


Me acaba de editar I'ma <C-O>py luego nota que su respuesta ...
TSH

2
¿Un lenguaje de golf usando Vim y escapetiene 5 caracteres?
mowwwalker

44
@mowwwalker Nope. Realmente es el byte 0x1B, pero es más fácil y más obvio lo que significa si lo escribes como <esc>. Lo mismo para <C-r>, que es realmente0x12
DJMcMayhem

@DJMcMayhem, eso tiene mucho más sentido
mowwwalker

18

C (gcc) , 59 42 33 bytes

-17 bytes gracias a @Conor O'Brien al notar que la importación no era necesaria

-9 bytes gracias a @tsh que señala una forma UB más corta de escribir la función

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

Pruébalo en línea!

Corta los primeros 3 caracteres de la entrada (los elimina I'm) y los rodea con el texto deseado.


El programa se compila sin la importación, por lo que puede soltarlo por 42 bytes.
Conor O'Brien

@ ConorO'Brien buena captura!
Neil A.

3
Y el int también es opcional.
tsh

2
(?) Y también el char*, tal vez ...; así que a(x){printf("Hi%s, I'm C!",x+3);}debería funcionar
tsh

2
@tsh: sí, en la práctica eso funcionará en la mayoría de las implementaciones de C de 32 bits (donde un intpuede contener un char*sin truncarlo), a pesar del comportamiento indefinido. En x86-64 gcc en Linux, siempre fallará en un ejecutable PIE (normalmente no hay punteros en los 32 bits bajos del espacio de direcciones virtuales, y gcc no copiará los 32 bits altos mientras se calcula a x+3partir de la función arg en El registro RDI). Pero en un ejecutable que no es PIE, las direcciones estáticas están en los 31 bits bajos del espacio de direcciones virtuales, por lo que si la persona que llama pasó un literal de cadena o un búfer estático, funcionaría.
Peter Cordes

16

V , 13 bytes

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

Pruébalo en línea!

Nuevo a V. Lo supe hace unos 30 minutos. De todos modos, este idioma se elige solo porque su nombre solo cuesta 1 byte. No estoy seguro de cómo enviar la <End>clave en V. La mayoría de los entornos vim aceptarían <End>como reemplazo <Esc>Aen este ejemplo. Pero, ya sabes, V es 2 caracteres más corto que vim. :)

Gracias a @Candy Gumdrop , ahorra 1 byte.


1
Podría guardar un byte cambiando c3la cE.
Candy Gumdrop

@CandyGumdrop Wow, no conocía las mayúsculas Eantes.
tsh

También podría hacer cW(que parece diferente, pero en realidad es idéntico a cE) o 3s. ¡Buen trabajo! Estaba a punto de publicar casi esta respuesta exacta cuando vi que ya había respuestas de 2 V, lo que fue una agradable sorpresa. He intentado varios enfoques diferentes, pero no estoy seguro de si será posible obtener <13 bytes.
DJMcMayhem

11

Stax , 13 bytes

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

Ejecutar y depurarlo

Desempaquetado, sin golf y comentado, se ve así.

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

Moví el comentario final una línea hacia arriba ya que nada puede seguir un literal de cadena sin terminar.

Ejecute este


Voy a declararte el ganador porque tu publicación tenía más votos, pero técnicamente estabas vinculado con otra persona. ¡Felicidades!
connectyourcharger

10

brainfuck, 164

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

Pruébalo en línea!

El "brainfuck!" parte de la cadena se genera con esta herramienta, probablemente puede jugarse más a mano.


2
Prueba BF Crunch
Jo King

10

Excel, 36 33 bytes

-3 bytes gracias a Johan du Toit.

La entrada entra en A1.

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

Primer intento:

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

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

Gracias @JohanduToit. A1en lugar de B13hacerlo en realidad 33 bytes.
Wernisch

8

Python 3 , 35 34 bytes

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

Pruébalo en línea!

-1 byte gracias a Encarnación de la ignorancia

También 34 bytes, utilizando las nuevas cadenas formateadas, gracias a Gábor Fekete:

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

Pruébalo en línea!



¿Qué hay de perder lambda s:y reemplazar %s[3:]con %input()[3:]? (-4 bytes)
niko

@niko si entiendo lo que estás diciendo, eso no imprimirá nada. Las reglas predeterminadas en este sitio son un programa completo que imprime resultados o una función que devuelve resultados. Por lo general, lo que está sugiriendo se llama un fragmento, y no sería una solución completa, tendría que envolverse con print()7 bytes más, por lo que las respuestas de Python generalmente usan lambdas.
Stephen

Pero, ¿cómo es eso diferente de su (y en realidad la mayoría) de las respuestas aquí? Me refiero a que ambos no imprimen nada, y ambos devuelven el mismo resultado, ¿verdad? (Bastante nuevo aquí, todavía me
estoy

2
@niko ¡Está bien! Con lambda s, he definido una función (anónima). Si observa el encabezado y el pie de página en el enlace TIO, nombro esa función fy luego la llamo con f("I'm whatever"). Entonces la función devuelve la salida esperada. Con su fragmento, no imprime ni regresa de una función; solo tiene un código que evalúa el resultado correcto, pero no hace nada con él. Puede ejecutar programas varias veces, puede llamar a funciones varias veces, pero un fragmento es solo un fragmento.
Stephen

6

R 45 44 39 bytes

@Giuseppe Editar

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

@AaronHayman Editar

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

Pruébalo en línea!


puede guardar un byte reemplazando "(I'm )con"(.* )
Aaron Hayman

1
@AaronHayman, no funciona para I'm a programmer(muchos espacios) debido a la codicia
Nahuel Fouilleul

@NahuelFouilleul Correcto, no estaba seguro de si se consideraría el primer o el último espacio en blanco.
niko

1
Bien, guardé un byte, y creo que este funciona correctamente. ¡ Pruébelo en línea!
Aaron Hayman

2
2 bytes por el cambio de la suba "I'm(.*)" and "Hi\\1, I'm R"y 3 bytes de entrada mediante la adopción de la entrada estándar usando scan: Pruébelo en línea
Giuseppe

6

PHP ,34 32 bytes

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

Pruébalo en línea!

Entrada vía STDIN, llamada 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 bytes

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

Desmontado:

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 programa DOS ejecutable independiente. Entrada desde la línea de comando, salida a la pantalla.

ingrese la descripción de la imagen aquí

Descargue y pruebe DAD.COM .

* El nombre exacto del "idioma" aquí es un poco ambiguo ya que el código de máquina de la CPU no es realmente un idioma en un sentido formal. Ir con "x86" como un nombre generalmente entendido y aceptado para la plataforma de destino.


[moviendo el comentario hacia abajo desde el hilo principal] Yo diría que "x86" es la arquitectura, mientras que "MA SM" sería uno de los idiomas disponibles en esa arquitectura (tenga en cuenta que sí tiene un espacio).
Jonathan Allan

55
Creo que "x86" probablemente esté bien, es golf después de todo :)
Jonathan Allan


5

Espacio en blanco , 267 bytes

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

Se agregaron letras S(espacio), T(tabulación) y N(nueva línea) solo como resaltado.
[..._some_action]agregado solo como explicación.

Dado que el espacio en blanco ingresa un carácter a la vez, la entrada debe contener una nueva línea final para que sepa cuándo detener la lectura de caracteres y se realiza la entrada.

Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).

Explicación en pseudocódigo:

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

Los caracteres de ", I'm Whitespace!"se empujan en orden inverso y luego se imprimen en un bucle. Todos los valores de estos caracteres también se reducen en 102, que se agregan en el bucle antes de imprimir para guardar bytes. Esta constante 102 para bajar cada carácter se genera con este programa Java . Además, en lugar de presionar el valor -70para ambos espacios dos veces, el segundo espacio "!ecapsetihW m'I ,"se copia del primero con la copia incorporada para guardar algunos bytes.


5

Lenguaje de fórmulas IBM / Lotus Notes, 61 62 bytes

+1 porque no me había dado cuenta !al final de la salida.

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

Fórmula de campo calculada que toma su entrada de un campo editable i. Fracasaría para "I'm an I'm", pero dado que eso no tendría ningún sentido, supongo que no sucederá.

¡Lástima que con 32 bytes, el nombre del idioma es más de la mitad de la longitud total de la fórmula!

Captura de pantalla a continuación que muestra un ejemplo de entrada y salida:

ingrese la descripción de la imagen aquí


55
Parece que su idioma sería bueno para el trabajo si el nombre no fuera tan largo :)
connectyourcharger

si Formula
hablaba

1
@PeterCordes: posible pero Lotus Notes / Domino también tiene LotusScript como lenguaje incorporado, por lo que probablemente necesitemos ser un poco más específicos ;-)
ElPedro

1
En realidad, podría ir un poco mejor que eso, ya que IBM lo renombró a IBM Notes, pero luego lo renombraron nuevamente a IBM Domino, así que supongo que para ser estrictamente correcto debería ser "Hola @PeterCordes, soy IBM Domino Formula" :)
ElPedro

1
@PeterCordes Solo se requieren las partes esenciales del nombre del idioma: acepto Perlcomo sustitución de Perl 5o Perl 5 -p.
connectyourcharger

5

sed ( -r), 31 28 25 bytes

-3 bytes gracias a Shaggy -3 bytes porque -rno es necesario en la salida

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

TIO



Hmm ... Nuestra manera de contar las banderas fue declararlas como idiomas diferentes, así que creo que es posible que necesites el, -rpero valdría la pena que Meta lo considerara.
Shaggy


5

Japt , 18 bytes

`Hi{s3}, I'm Japt!

Cuando la biblioteca de compresión de cadenas de Japt alcanza una tasa de compresión del 0% ...

Intentalo

Otra alternativa de 18 bytes:

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

1
... pero aún supera a Jelly y 05AB1E :)
Shaggy

5

Octava , 35 bytes

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

Pruébalo en línea!

@(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 bytes:

Intenté recuperar "Octave" de alguna manera, sin escribirlo, ya que 6 caracteres es bastante en comparación con algunos de los otros nombres de idiomas aquí. Desafortunadamente, solo pude encontrar ver, que genera una estructura con campos separados por comas. Toma más de 6 bytes. :(

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

Pruébalo en línea!


5

Ruby -p , 32 27 26 bytes

-5 bytes aprovechando la respuesta Jelly de Nick Kennedy .

-1 byte de división en un punto diferente en la cadena. También me di cuenta de que mi antiguo bytecount estaba equivocado.

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

Explicación

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

Pruébalo en línea!


¡Bueno! ¿Dónde está tu opinión?
connectyourcharger

@connectyourcharger agregó una explicación. La entrada es STDIN.
Value Ink

Gotcha ¡Buena respuesta!
connectyourcharger


4

Lote, 22 + 3 = 25 bytes

@echo Hi %*, %0 Batch!

+3 bytes para nombrar este archivo I'm(con la .batextensión requerida para archivos Batch). Invocar como I'm hungry, cuando hará eco Hi hungry, I'm Batch!.


el programa debería recibir, I'mpero aquí está el nombre del guión, no sé si es válido, o a menos que sea el intérprete con el guión en la ruta actual
Nahuel Fouilleul

1
@NahuelFouilleul El intérprete es CMD, entonces ¿eso realmente me ahorraría 2 bytes?
Neil


4

Perl 5 -p , 31 24 bytes

Reducción basada en aclaraciones de OP y una sugerencia de @NahuelFouilleul.

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

Pruébalo en línea!



1
también tal vez $^X $]podrían usarse variables especiales, sin embargo 5 es más corto que$]
Nahuel Fouilleul

¿ Necesita incluir el 5como parte del nombre del idioma? es decir, ¿podría argumentar que Perl 5 "se considera" como "Perl"? Ese fue el caso antes de que existiera Perl 6, y las respuestas de codegolf solo necesitan trabajar en al menos una implementación del lenguaje, ¿entonces elegir una antigua?
Peter Cordes

OP confirma que Perles suficiente. Y que el uso de la -popción no tiene que considerarse parte del nombre del idioma.
Peter Cordes

4

Jalea ,  16  15 bytes

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

Un programa completo que acepta un argumento de cadena (con formato Python) que imprime el resultado.

Pruébalo en línea!

¿Cómo?

Ḋ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...también funciona.


4

Jalea , 20 17 bytes

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

Pruébalo en línea!

Un enlace monádico que toma la entrada como argumento y devuelve una cadena Jelly.

Explicación

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

1
Espera, ¿Jelly tiene una función incorporada solo para la palabra "Jelly"?
connectyourcharger

3
@connectyourcharger es una palabra de diccionario comprimida
Nick Kennedy

Ah, eso tiene sentido
conecta tu cargador

4

VBA (Excel), 27 28 bytes

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

La entrada va en la celda A1 de la hoja activa en Excel, ejecute el código en la ventana Inmediato

Se aprovecha del hecho de que "SomeString"SomeValuee SomeValue"SomeString"implícitamente concatenar, y que omitiendo el tercer argumento de la MIDfunción se llevará a todos los caracteres desde el final de la entrada - convirtiéndolo en un "vertedero caracteres iniciales" función

(-1 byte gracias a Shaggy, pero +1 cuando OP confirmó que todas las respuestas deberían terminar con un signo de exclamación)
(-1 byte gracias a Taylor Scott recordándome que la cita doble final era opcional)


1
¿Podría eliminar el espacio después Hiy reemplazarlo 5con 4?
Shaggy

@ Shaggy ... Sí, sí podría. No tengo idea de cómo me perdí eso, gracias
Chronocidal

1
Puede soltar un byte eliminando el último "de esta solución, y a medida que usa la notación de evaluación (los corchetes) debe marcar esta solución como Excel VBA, ya que esa notación solo está disponible en Excel
Taylor Scott


3

05AB1E , 23 21 bytes

Guardado 2 bytes gracias a Kevin Cruijssen

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

Pruébalo en línea!

Explicación

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

21 bytes . Y lástima que el signo de exclamación esté allí ... Ya que •äƵí•hRes 1 byte más corto que "05AB1E". :)
Kevin Cruijssen

@KevinCruijssen: ¡Guau! Me siento estúpido por no haber comenzado con ",". Sí, lo intenté •äƵí•hRtambién, pero como dices, desafortunadamente no guarda ninguno aquí.
Emigna

3

QuadR , 22 bytes

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

Pruébalo en línea!

Esto reemplaza:

^... tres caracteres iniciales
y
$ el final de línea

con

Hi
y
,I'm QuadR
respectivamente


Entonces, ¿podría intercambiar las dos líneas del medio y cambiar el idioma a Retina y aún superar la respuesta de @ KevinCruijssen?
Neil

@Neil, supongo que sí, pero la tuya es aún más corta. Tbf, QuadR no es más que una cubierta delgada para los no destinados al golf⎕R operador APL .
Adám

Ah, pero mi respuesta solo funciona para Retina 1, no para Retina 0.8.2.
Neil

3

Retina , 22 21 bytes

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

Pruébalo en línea! El enlace incluye casos de prueba. No funciona en Retina 0.8.2, así que adapta la respuesta QuadR de @ Adám en su lugar. Explicación: El patrón está vacío, por lo que coincide en cada posición en la cadena de entrada. Sin embargo, solo necesitamos el tercer partido (o el cuarto funcionaría). La sustitución se aplica a ese partido. Dentro de esa sustitución, se $'refiere al resto de la cadena y $`al principio de la cadena.


3

Retina 0.8.2 , 26 25 23 bytes

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

-1 byte gracias a @attinat .
-2 bytes portando la respuesta QuadR de @ Adám , ¡así que asegúrate de votarlo!

PD: @Neil publicó una respuesta Retina más corta en la nueva versión , así que he cambiado esta respuesta a Retina 0.8.2 explícitamente.

Pruébalo en línea.

Explicación:

Reemplace los primeros tres caracteres con "Hola":

^...
Hi

Y luego agregue un final "¡Soy Retina!" (reemplazando el final de la cadena):

$
, I'm Retina!

1
¿No debería ser así en su lugar?
attinat

2
o mejor, 25 bytes
attinat

@attinat Ah, por supuesto, ni siquiera había notado la salida incorrecta ..>.> ¡Y gracias por el -1!
Kevin Cruijssen

3

bash, 24 bytes

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

TIO


reemplazar bashcon $0para guardar un par de bytes
roblogic

1
@roblogic, $0imprimiría el nombre del script o se ejecutaría, bash -c 'echo Hi ${@:2}, $1 $0!' bash $@pero debería contar en tamaño
Nahuel Fouilleul
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.