Papa Witze machen Spaß


49

Wir alle kennen den klassischen Vaterwitz, der ungefähr so ​​aussieht:

  1. Jemand sagt einen Satz, um sich selbst zu beschreiben (zB I'm tiredoder I'm confused).

  2. Ein Dad-Joke-Enthusiast kommt vorbei und antwortet Hi <adjective>, I'm Dad!, weil die Einführungen dem gleichen Format folgen ( I'm Peterfolgt dem gleichen Format wie I'm hungry).

Ihre Aufgabe ist es, eine Eingabe in Form eines Selbstdeskriptors aufzunehmen und das entsprechende Dad-Joke-Formular auszugeben. Statt des Wortes "Dad" verwenden Sie jedoch den Namen der Programmiersprache, die Sie programmieren im.

Testfälle (setzen voraus, dass sie von Python analysiert werden):

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!

Nehmen wir nun an, dass diese Testfälle von Golfscript analysiert werden:

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!

Die genaue Herausforderung:

  1. Nehmen Sie eine Zeichenfolge im Selbstdeskriptor-Format ( I'm <adjective>oder I'm a(n) <noun>) über die Standardeingabe oder über eine Funktion auf.

    • Angenommen, es gibt keine abschließende Interpunktion.

    • Angenommen, das Wort I'mwird verwendet und nicht I am.

  2. Konvertieren Sie es in ein Dad-Joke-Format - sehen Sie sich die obigen Beispiele an, um genau zu sehen, wie das aussehen soll.

Andere Sachen:


Bestenliste

Sie können die Bestenliste für diesen Beitrag anzeigen, indem Sie das Widget / Snippet unten erweitern. Damit Ihr Beitrag in die Rangliste aufgenommen wird, benötigen Sie einen Header ( # header text) mit folgenden Informationen:

  • Der Name der Sprache (Ende mit Komma ,oder Bindestrich -), gefolgt von ...

  • Die Anzahl der Bytes als letzte Zahl in Ihrer Kopfzeile.

Beispielsweise JavaScript (ES6), 72 bytesist gültig, aber Fortran, 143 bytes (8-bit)ungültig, da die Byteanzahl nicht die letzte Zahl in der Kopfzeile ist (Ihre Antwort wird als 8 Byte erkannt - nutzen Sie dies nicht).

<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
Eine Möglichkeit, meiner Familie zu erzählen, was meine Frau erwartete, bestand darin, so viele Witze wie möglich mit meinem Vater zu machen und zu sehen, wer davon erfuhr!
Giuseppe

7
Einige Beispielausgaben enden mit Ausrufezeichen, andere nicht. Was ist die Bedeutung?
rekursiv

9
Es ist üblich, vor der Annahme einer Antwort viel länger zu warten
user2390246

7
Und der Tie-Breaker ist kein Voting, sondern derjenige, der zuerst die niedrigste Punktzahl erreicht hat.
Shaggy

4
Das Warten auf die nächste Golfsprache mit dem Namen ist eine leere Zeichenfolge.
21.

Antworten:


26

V , 13 Bytes

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

Probieren Sie es online!

Inspiriert von der Antwort von tsh

Dies macht sich die Tatsache zunutze, dass I'mbeim Löschen des Texts von Anfang an vom Anfang der Zeichenfolge an gereiht und <C-r>"im Einfügemodus bis zum Ende eingefügt wird .


Ich redigierte nur I'mzu <C-O>pund dann feststellen , dass Ihre Antwort ...
TSh

2
Eine Golf-Sprache mit Vim und escapedauert 5 Zeichen?
Mowwwalker

4
@ Mowwwalker Nein. Es ist wirklich das Byte 0x1B, aber es ist einfacher und offensichtlicher, was es bedeutet, wenn Sie es als schreiben <esc>. Das gleiche für <C-r>, was wirklich ist0x12
DJMcMayhem

@ DJMcMayhem, ah, das macht viel mehr Sinn
Mowwwalker

18

C (gcc) , 59 42 33 Bytes

-17 Bytes dank @Conor O'Brien, der bemerkte, dass der Import nicht notwendig war

-9 Bytes dank @tsh, das auf eine kürzere UB-Schreibweise der Funktion hinweist

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

Probieren Sie es online!

Schneidet die ersten 3 Zeichen der Eingabe ab (entfernt I'm) und umgibt sie mit dem gewünschten Text.


Das Programm wird ohne den Import kompiliert, sodass Sie es für 42 Byte ablegen können.
Conor O'Brien

@ ConorO'Brien schöner Fang!
Neil A.

3
Und das int ist auch optional.
Dienstag,

2
(?) Und char*vielleicht auch ...; So a(x){printf("Hi%s, I'm C!",x+3);}sollte es funktionieren
tsh

2
@tsh: Ja, in der Praxis funktioniert dies bei den meisten 32-Bit-C-Implementierungen (bei denen ein ein enthalten intkann, char*ohne es abzuschneiden), trotz des undefinierten Verhaltens. Auf x86-64 gcc unter Linux schlägt die Ausführung einer PIE-Datei immer fehl (normalerweise befinden sich keine Zeiger in den niedrigen 32 Bit des virtuellen Adressraums, und gcc kopiert die hohen 32 Bit nicht, während x+3aus der Funktion arg in berechnet wird das FEI-Register). In einer nicht von PIE ausführbaren Datei befinden sich statische Adressen jedoch in den niedrigen 31 Bit des virtuellen Adressraums. Wenn der Aufrufer also ein Zeichenfolgenliteral oder einen statischen Puffer übergeben würde, würde dies funktionieren.
Peter Cordes

16

V , 13 Bytes

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

Probieren Sie es online!

Neu bei V. Ich wusste es gerade vor ungefähr 30 Minuten. Wie auch immer, diese Sprache wird nur gewählt, weil ihr Name nur 1 Byte kostet. Ich bin nicht sicher, wie ich <End>Schlüssel in V senden soll . Die meisten vim-Umgebungen würden in diesem Beispiel <End>als Ersatz akzeptieren <Esc>A. Aber Sie wissen, V ist 2 Zeichen kürzer als vim. :)

Spart dank @Candy Gumdrop 1 Byte.


1
Könnte durch eine Änderung ein Byte speichern c3lzu cE.
Candy Gumdrop

@ CandyGumdrop Wow, ich kannte die Großbuchstaben Evorher nicht.
Dienstag,

Sie könnten auch tun cW(was anders scheint, aber tatsächlich identisch ist cE) oder 3s. Gute Arbeit! Ich wollte gerade fast genau diese Antwort posten, als ich sah, dass es bereits 2 V-Antworten gab, was eine schöne Überraschung war. Ich habe verschiedene Ansätze ausprobiert, bin mir aber nicht sicher, ob es möglich sein wird, <13 Bytes zu erhalten.
DJMcMayhem

11

Stax , 13 Bytes

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

Führen Sie es aus und debuggen Sie es

Ausgepackt, ungolfed und kommentiert sieht es so aus.

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

Ich habe den letzten Kommentar um eine Zeile nach oben verschoben, da einem nicht abgeschlossenen Zeichenfolgenliteral möglicherweise nichts folgt.

Führen Sie dieses aus


Ich werde Sie zum Sieger erklären, weil Ihr Beitrag mehr Stimmen hatte, aber Sie waren technisch mit einer anderen Person verbunden. Herzliche Glückwünsche!
connectyourcharger

10

Gehirnfick, 164

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

Probieren Sie es online!

Der "Brainfuck!" Ein Teil der Saite wird mit diesem Werkzeug erzeugt, kann wahrscheinlich von Hand weiter golfen werden.


2
Probieren Sie BF Crunch
Jo King

10

Excel, 36 33 Bytes

-3 Bytes danke an Johan du Toit.

Die Eingabe erfolgt in A1.

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

Erster Versuch:

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

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

Vielen Dank, dass Sie @JohanduToit. A1stattdessen B13also eigentlich 33 bytes.
Wernisch

8

Python 3 , 35 34 Bytes

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

Probieren Sie es online!

-1 Byte dank Verkörperung der Ignoranz

Dank Gábor Fekete auch 34 Bytes mit den neueren formatierten Zeichenfolgen:

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

Probieren Sie es online!



Was über den Verlust lambda s:und das Ersetzen %s[3:]mit %input()[3:]? (-4 Bytes)
niko

@niko Wenn ich verstehe, was du sagst, wird nichts gedruckt. Standardregeln auf dieser Site sind entweder ein vollständiges Programm, das die Ausgabe druckt, oder eine Funktion, die die Ausgabe zurückgibt. Normalerweise wird das, was Sie vorschlagen, als Snippet bezeichnet und wäre keine vollständige Lösung. Es müsste mit print()7 weiteren Bytes umhüllt werden. Aus diesem Grund verwenden Python-Antworten normalerweise Lambdas.
Stephen

Aber wie unterscheidet sich das von Ihren (und eigentlich den meisten) Antworten hier? Ich meine, beide von sich aus drucken nichts und beide geben die gleiche Ausgabe zurück, oder? (Ziemlich neu hier - gewöhnt sich noch an CG)
niko

2
@ niko Es ist in Ordnung! Mit habe lambda sich eine (anonyme) Funktion definiert. Wenn Sie sich die Kopf- und Fußzeile im TIO-Link ansehen, benenne ich diese Funktion fund rufe sie dann mit auf f("I'm whatever"). Dann gibt die Funktion die erwartete Ausgabe zurück. Mit Ihrem Snippet können Sie eine Funktion weder drucken noch zurückgeben. Sie haben nur ein bisschen Code, der das richtige Ergebnis liefert, aber nichts damit anfängt. Sie können Programme mehrfach ausführen, Funktionen mehrfach aufrufen, aber ein Snippet ist nur ein Snippet.
Stephen

6

R 45 44 39 Bytes

@ Giuseppe Bearbeiten

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

@ AaronHayman Bearbeiten

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

Probieren Sie es online!


kann man sparen Byte ersetzt "(I'm )mit"(.* )
Aaron Hayman

1
@ Aaron Hayman, funktioniert nicht für I'm a programmer(viele Leerzeichen) wegen Gier
Nahuel Fouilleul

@NahuelFouilleul Richtig, ich war mir nicht sicher, ob der erste oder letzte Leerraum in Betracht gezogen werden würde.
niko

1
Okay, ich habe ein Byte gespeichert und ich denke, dieses funktioniert einwandfrei. Probieren Sie es online aus!
Aaron Hayman

2
2 Bytes durch Ändern von subto "I'm(.*)" and "Hi\\1, I'm R"und 3 Bytes durch Eingeben von stdin mit scan: Online
Giuseppe

6

PHP ,34 32 Bytes

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

Probieren Sie es online!

Eingabe über STDIN, Aufruf mit -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!$

Zerlegt:

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

Ein eigenständiges ausführbares DOS-Programm. Eingabe über die Befehlszeile, Ausgabe auf dem Bildschirm.

Bildbeschreibung hier eingeben

Laden Sie DAD.COM herunter und testen Sie es .

* Der genaue Name der "Sprache" ist hier etwas mehrdeutig, da der CPU-Maschinencode nicht wirklich eine Sprache im formalen Sinne ist. Mit "x86" als allgemein bekanntem und akzeptiertem Namen für die Zielplattform.


Ich würde sagen, "x86" ist die Architektur, während "MA SM" eine der verfügbaren Sprachen für diese Architektur ist (beachten Sie jedoch, dass sie ein Leerzeichen enthält).
Jonathan Allan

5
Ich denke, "x86" ist wahrscheinlich wirklich in Ordnung, es ist schließlich Golf :)
Jonathan Allan


5

Leerzeichen , 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]

Buchstaben S(Leerzeichen), T(Tabulator) und (Zeilenvorschub) werden Nnur als Hervorhebungen hinzugefügt.
[..._some_action]nur als Erklärung hinzugefügt.

Da Whitespace jeweils ein Zeichen eingibt, sollte die Eingabe eine abschließende neue Zeile enthalten, damit bekannt ist, wann das Lesen von Zeichen zu beenden ist und die Eingabe abgeschlossen ist.

Probieren Sie es online aus (nur mit Leerzeichen, Tabulatoren und Zeilenumbrüchen).

Erklärung im Pseudocode:

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

Die Zeichen von ", I'm Whitespace!"werden in umgekehrter Reihenfolge verschoben und dann in einer Schleife gedruckt. Alle Werte dieser Zeichen werden ebenfalls um 102 verringert, die vor dem Drucken in der Schleife hinzugefügt werden, um Bytes zu sparen. Diese Konstante 102 zum Verringern jedes Zeichens mit wird mit diesem Java-Programm erzeugt . Anstatt den Wert -70für beide Leerzeichen zweimal zu verschieben, wird das zweite Leerzeichen "!ecapsetihW m'I ,"aus dem ersten mit der eingebauten Copy-Funktion kopiert, um einige Bytes zu sparen.


5

IBM / Lotus Notes Formula Language, 61 62 Byte

+1 weil ich das !am Ende der Ausgabe nicht bemerkt hatte .

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

Berechnete Feldformel, deren Eingabe von einem bearbeitbaren Feld stammt i. Es würde für "Ich bin ein Ich" scheitern, aber da das überhaupt keinen Sinn ergibt, gehe ich davon aus, dass es nicht passieren wird.

Schade, dass bei 32 Bytes der Name der Sprache mehr als die Hälfte der Gesamtlänge der Formel beträgt!

Screenshot unten mit einem Beispiel für Ein- und Ausgabe:

Bildbeschreibung hier eingeben


5
Es sieht so aus, als ob Ihre Sprache für den Job gut wäre, wenn der Name nicht so lang wäre :)
connectyourcharger

Wenn ich es ernst Formula
meinte,

1
@PeterCordes - Möglich, aber Lotus Notes / Domino hat auch LotusScript als eingebaute Sprache, daher müssen wir wahrscheinlich etwas spezifischer sein ;-)
ElPedro

1
Könnte tatsächlich ein bisschen besser laufen, da IBM es in IBM Notes umbenannt hat, aber sie dann wieder in IBM Domino umbenannt haben. Daher sollte es, um genau zu sein, "Hi @ PeterCordes, ich bin IBM Domino Formula"
lauten

1
@PeterCordes Es werden nur die wesentlichen Teile des Sprachnamens benötigt - ich akzeptiere Perlals Ersatz für Perl 5oder Perl 5 -p.
connectyourcharger

5

sed ( -r), 31 28 25 Bytes

-3 Bytes dank Shaggy -3 Bytes, da -rin der Ausgabe nicht benötigt

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

TIO



Hmm ... Wir zählten die Flaggen, indem wir sie als verschiedene Sprachen deklarierten. Ich denke, Sie brauchen vielleicht die, -raber es lohnt sich, Meta zum Abwägen zu bringen.
Shaggy

Ich habe wegen Perl 5 Antwort und Kommentare entfernt
Nahuel Fouilleul

5

Japt , 18 Bytes

`Hi{s3}, I'm Japt!

Wenn die String-Komprimierungsbibliothek von Japt eine Komprimierungsrate von 0% erreicht ...

Versuch es

Eine weitere 18-Byte-Alternative:

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

1
... aber noch schlägt Jelly und 05AB1E :)
Shaggy

5

Oktave , 35 Bytes

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

Probieren Sie es 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 Bytes:

Ich habe versucht, "Octave" irgendwie abzurufen, ohne es aufzuschreiben, da 6 Zeichen im Vergleich zu einigen anderen Sprachnamen hier ziemlich viel sind. Leider konnte ich nur feststellen ver, welche Struktur mit kommagetrennten Feldern ausgegeben wird. Nimmt weit mehr als 6 Bytes. :(

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

Probieren Sie es online!


5

Ruby -p , 32 27 26 Bytes

-5 Bytes durch Nutzung von Nick Kennedys Jelly-Antwort .

-1 Byte vom Teilen an einem anderen Punkt in der Zeichenfolge. Außerdem wurde mir klar, dass mein alter bytecount falsch war.

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

Erläuterung

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

Probieren Sie es online!


Cool! Wo ist dein Input?
connectyourcharger

@connectyourcharger hat eine Erklärung hinzugefügt. Die Eingabe ist STDIN.
Value Ink

Erwischt. Gute Antwort!
connectyourcharger


4

Batch, 22 + 3 = 25 Bytes

@echo Hi %*, %0 Batch!

+3 Byte für die Benennung dieser Datei I'm(mit der erforderlichen .batErweiterung für Batch-Dateien). Rufen Sie as auf I'm hungry, wenn es wiedergegeben wird Hi hungry, I'm Batch!.


Programm sollte erhalten, I'maber hier ist es der Name des Skripts weiß nicht, ob es gültig ist, oder es ist der Interpreter mit dem Skript im aktuellen Pfad
Nahuel Fouilleul

1
@NahuelFouilleul Der Interpreter ist CMD, also würde mir das eigentlich 2 Bytes sparen?
Neil,


4

Perl 5 -p , 31 24 Bytes

Kürzung basierend auf Erläuterungen von OP und einem Vorschlag von @NahuelFouilleul.

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

Probieren Sie es online!



1
es $^X $]könnten auch spezielle Variablen verwendet werden, jedoch ist 5 kürzer als$]
Nahuel Fouilleul

Haben Sie brauchen , um die enthalten 5als Teil des Namens der Sprache? Könnten Sie also argumentieren, dass Perl 5 sich selbst als "Perl" betrachtet? Das war der Fall, bevor Perl 6 existierte und Codegolf-Antworten nur an mindestens einer Implementierung der Sprache arbeiten müssen. Wählen Sie also eine alte aus?
Peter Cordes

OP bestätigt, dass dies Perlausreichend ist. Und dass die Verwendung der -pOption nicht als Teil des Sprachnamens betrachtet werden muss.
Peter Cordes

4

Jelly ,  16  15 Bytes

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

Ein vollständiges Programm, das ein (Python-formatiertes) String-Argument akzeptiert, das das Ergebnis ausgibt.

Probieren Sie es online!

Wie?

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

Hinweis: Ḋ⁾Hio...funktioniert auch.


4

Jelly , 20 17 Bytes

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

Probieren Sie es online!

Ein monadischer Link, der die Eingabe als Argument verwendet und eine Jelly-Zeichenfolge zurückgibt.

Erläuterung

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

1
Warten Sie, Jelly hat eine eingebaute nur für das Wort "Jelly"?
connectyourcharger

3
@connectyourcharger Es ist ein komprimiertes Wörterbuch-Wort
Nick Kennedy

Ah, das macht Sinn
dein Ladegerät

4

VBA (Excel), 27 28 Bytes

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

Die Eingabe erfolgt in Zelle A1 des aktiven Arbeitsblatts in Excel. Führen Sie den Code im Direktfenster aus

Nutzt die Tatsache aus, dass "SomeString"SomeValueund SomeValue"SomeString"implizit verkettet wird, und dass das Weglassen des dritten Arguments in der MIDFunktion alle Zeichen vom Ende der Eingabe in eine Funktion zum Speichern der Anfangszeichen umwandelt

(-1 Byte dank Shaggy, aber +1, wenn OP bestätigt, dass alle Antworten mit einem Ausrufezeichen enden sollen)
(-1 Byte dank Taylor Scott, der mich daran erinnert, dass das letzte Anführungszeichen optional war)


1
Könnten Sie den Raum nach dem Entfernen Hiund Ersetzen 5mit 4?
Shaggy

@ Shaggy ... Ja, ja ich könnte. Keine Ahnung, wie ich das verpasst habe, danke
Chronocidal

1
Sie können ein Byte löschen, indem Sie das allerletzte Byte "aus dieser Lösung entfernen. Wenn Sie die Auswertungsnotation (die eckigen Klammern) verwenden, sollten Sie diese Lösung als Excel VBA kennzeichnen, da diese Notation nur in Excel
Taylor Scott,


3

05AB1E , 23 21 Bytes

2 Bytes dank Kevin Cruijssen gespeichert

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

Probieren Sie es online!

Erläuterung

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

21 Bytes . Und schade, das Ausrufezeichen ist da .. Da •äƵí•hRist 1 Byte kürzer als "05AB1E". :)
Kevin Cruijssen

@ KevinCruijssen: Wow! Ich fühle mich dumm, dass ich nicht mit dem "," angefangen habe. Ja, ich habe es auch versucht •äƵí•hR, aber wie du sagst, speichert es hier leider keine.
Emigna

3

QuadR , 22 Bytes

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

Probieren Sie es online!

Dies ersetzt:

^... drei Anfangsbuchstaben
und
$ das Zeilenende

mit

Hi
und
,I'm QuadR
jeweils


Sie könnten also die beiden mittleren Zeilen tauschen und die Sprache in Retina ändern und trotzdem die Antwort von @ KevinCruijssen schlagen?
Neil,

@Neil Ich denke schon, aber deines ist noch kürzer. Tbf, QuadR ist nur eine dünne Abdeckung für den nicht für den Golfsport bestimmten ⎕RAPL-Betreiber.
Adám

Ah, aber meine Antwort funktioniert nur für Retina 1, jedoch nicht für Retina 0.8.2.
Neil,

3

Netzhaut , 22 21 Bytes

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

Probieren Sie es online! Link enthält Testfälle. Funktioniert nicht in Retina 0.8.2, passen Sie stattdessen die QuadR-Antwort von @ Adám an. Erläuterung: Das Muster ist leer, sodass es an jeder Position in der Eingabezeichenfolge übereinstimmt. Wir brauchen aber nur die dritte (oder vierte) Übereinstimmung. Die Auswechslung wird dann auf diese Übereinstimmung angewendet. $'Bezieht sich innerhalb dieser Ersetzung auf den Rest der Zeichenfolge und $`auf den Anfang der Zeichenfolge.


3

Retina 0.8.2 , 26 25 23 Bytes

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

-1 Byte danke an @attinat .
-2 Bytes durch Portierung der QuadR-Antwort von @ Adám , also stelle sicher, dass du ihn positiv bewertest !!

PS: @Neil hat in der neuen Version eine kürzere Retina-Antwort gepostet , daher habe ich diese Antwort explizit auf Retina 0.8.2 geändert.

Probieren Sie es online aus.

Erläuterung:

Ersetzen Sie die ersten drei Zeichen durch "Hi":

^...
Hi

Und fügen Sie dann ein abschließendes ", ich bin Retina!" (durch Ersetzen des Stringendes):

$
, I'm Retina!

1
Sollte es nicht wie seine diese statt?
21.

2
oder besser, 25 Bytes
attinat

@attinat Ah, hatte natürlich nicht mal die falsche Ausgabe bemerkt ..>.> Und danke für die -1!
Kevin Cruijssen

3

Bash, 24 Bytes

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

TIO


Ersetzen Sie bashmit $0, um ein paar Bytes zu speichern
Roblogic

1
@roblogic, $0würde den Namen des Skripts ausgeben oder ausführen, bash -c 'echo Hi ${@:2}, $1 $0!' bash $@sollte aber in der Größe zählen
Nahuel Fouilleul
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.