! Ben! N! S! E! R! T! ! N! B! E! T! A! E! E! N!


24

Dan Yayınlanan burada .

Bu zorluk, bu sorudan oldukça "damıtılmıştır" . @ Kababa'ya özel teşekkürler!

Bu görevde, dizgenin başına ve her karakterden sonra bir ünlem işareti koymalısınız.

kurallar

  • Her zaman boş olmayan bir dize girişi olacaktır. Girdide sekme bulunmayacak. Girişin yalnızca genişletilmiş ASCII yazdırılabilir karakterleri ve yeni satırlar içerdiğini varsayabilirsiniz.
  • Giriş, diliniz yeni bir satır tespit edemediği sürece izleyen satırlar içermez.
  • Bu bir yarışması; en kısa cevap kazanmalı.

Örnekler

  • 4 yeni satır 5 yeni satır ayrılmış ünlem işareti ile sonuçlanır. Bunu bir Markdown metni olarak koymak çok zor, bu yüzden bunun yerine ifade edildi.
1 2 3 4 5 6
129591 129012 129127 129582

0

çıktılar

! 1! ! 2! ! 3! ! 4! ! 5! ! 6!
! 1! 2! 9! 5! 9! 1! ! 1! 2! 9! 0! 1! 2! ! 1! 2! 9! 1! 2! 7! ! 1! 2! 9! 5! 8! 2!
!
! 0!
asd afjoK ak: e
kPrLd
    fOJOE;
    KFO
KFkepjgop sgpaoj faj

çıktılar

! Bir! S! D! ! Bir! F! J! K o! ! Bir k:! E!
! K! P! R! L! D!
! ! ! ! !!! O J = O E! F!;
! ! ! ! ! K! F! Ey!
K!! F! K! E! S! J! G! O! S! ! S! G! S! A! O! J! ! ! ! F! Bir! J!

Sadece bir karakter içeren bir temel test durumu:

bir

çıktılar

! Bir!

(Otomatik tamamlama! Şaka yapıyorum, böyle bir şey yok.) Ünlem işareti var:

!!
!!
!!
!!
!!

Çıktılar:

!!!!!
!!!!!
!!!!!
!!!!!
!!!!!


7
Olumsuz oyu gerçekten anlamıyorum - bu açık ve iyi yazılmış bir sorundur. Re: yinelenen olmak - ('!' Den önceki bir şey değil) büyük bir fark yaratıyor) ve kimsenin bunu önerdiğine inanmıyorum (yakın oy yok).
Jonathan Allan

1
eğer bir dil a\nve arasındaki farkı söyleyemezse, aizleyen yeni satırların olmamasını talep edebilir miyiz?
Giuseppe

13
Aşağı oylar, her bir oy oyuna arasına eklenir, aynen meydan okumanın tarif ettiği gibi.
Bir

2
Bu öldü.
V. Courtois

Yanıtlar:



12

Python 3 , 27 bayt

lambda s:f"!{'!'.join(s)}!"

Çevrimiçi deneyin!

Dürüst olmak gerekirse, birileri bana daha küçük bir bayt sayısı ile bunu yapmak için güzel bir yol gösterebilir umarım.


Bu, boş satır durumunu doğru şekilde işlemez
pullar,

@ flakes ne demek istiyorsun? Boş bir dize demek istiyorsan: boş bir dize kullanmamız gerekmez (ve bu çıktılardan bağımsız olarak)!! bu durumda benim için anlamlı olan). Dize kastediyorsanız \n: öyle, çünkü doğru çıktı !\n!.
Jonathan Allan,

3
@JAD Gördüğüm kadarıyla, örneklerde boş bir dize yok. Sadece bu değil, ilk kural tam anlamıyla "her zaman boş olmayan bir dize girdisi olacak" ifadesini kullanır.
Monica’yı

1
Ah yanılmışım. İlk örnekte, girişin ortasında boş bir satır var. Fakat bu cevap, ünlem işaretini bunun ortasına yerleştirmeyi ele alacak !\n!\n!. iyi iş.
gevreği

1
codegolf.stackexchange.com/questions/190223/insert-nbetween/… daha kısa bir yol göstermek için söylediğiniz gibi
U10-Forward - Monica





8

JavaScript (ES6), 19 bayt

Girdiyi karakter dizisi olarak alır.

s=>`!${s.join`!`}!`

Çevrimiçi deneyin!


JavaScript (ES6),  23  20 bayt

@ShieruAsakoto sayesinde 3 bayt kaydedildi

Bir dize olarak girdi alır.

s=>[,...s,,].join`!`

Çevrimiçi deneyin!


JavaScript (ES6), 22 bayt

Tjjfvi tarafından önerildi

Bir dize olarak girdi alır.

s=>s.replace(/|/g,"!")

Çevrimiçi deneyin!



@tjjfvi Şık bir!
Arnauld

5
23: 20 için 20:s=>[,...s,,].join`!`
Shieru Asakoto

7

R , 25 bayt

function(x)gsub("","!",x)

Çevrimiçi deneyin!

Bir karakter vektörünü kabul eden ve döndüren bir işlev.


İşlev biçimini scan(,''), şu şekilde olduğu gibi değiştirerek 3 bayt'ı tıraş edebilir: tio.run/##K/r/P724NElDSUlHSVFJpzg5MU9DR11dU/O/…
Sumner18

@ Sumner18 teşekkürler. Bununla başladım ama boşluklara girdi böldü.
Nick Kennedy

1
@ Sumner18 Buradaki zorluk, yeni hatlarla giriş yapmayı istemektedir; scan (ancak Nick'in çözümünün en azından çıktıyı görüntülerseniz ele alması gerekir cat.)
Robin Ryder

7

8086 makine kodu, .COM formatı (MS-DOS 2+), 32 bayt

(Öykünücüye bağlı olarak -1: aşağıya bakın)

En iyi sonuçlar için, standart girdiyi bir dosyadan yönlendirin; yazarak arabellekleme yapmadan tuhaf görünümlü çıktılar elde edersiniz; Ayrıca, yeni satırlar biraz garip görünür çünkü bunlar depolanır CR LFve CRkısım çıktıyı bozar.

Gerçek bir MS-DOS öykünmesi Bu program davranacağını ince (örn PCjs) ama DOSBox Ctrl + Z EOF ile sorunları var gibiydi (içinde yorumları görmek montaj listeleme), bu yüzden YAPMAYIN sürece DOSBox içinde konsolunu kullanarak giriş girmeyi deneyin Ekstra çek ekleyin!

BB 01 00 53 59 BA 0B 01 B4 40 CD 21 4A 4B B4 3F CD 21 85 C0 74 09 B4 40 43 41 CD 21 49 EB EE C3

Bazı ilginç bitler:

  • Ben (zaten idam edilmişti hafızayı yeniden kullanarak bazı veri yer ayırmıştım 21Hiçinde INT 21Holur !)

  • Ben neredeyse ben sayfasındaki ile ilginç bir hile kullanabilmek için "BCD Talimatları Gizli Güç" beni kullanmasına izin olurdu AAAyerine standart TESTkarşılaştırma ALbir bayt tasarruf 0'a. Maalesef, bu tam olarak belgelenmedi, bu yüzden ona güvenemedim: örneğin PCjs, taşıma ve yardımcı taşıma bayraklarından başka hiçbir şeyi ayarlamaz. :-(

Montaj kodu (TASM ideal mod):

IDEAL
MODEL   TINY

CODESEG
ORG 100H

;; DOSBox (tested with 0.74-2) didn't seem to handle Ctrl-Z as EOF
;; so uncomment the ";;" lines to run it there.
MAIN:
    MOV     BX,1
    PUSH    BX
    POP     CX
    MOV     DX,OFFSET MAIN_1+1  ; The 21H in INT 21H
    MOV     AH,40H
MAIN_1:
    INT     21H
    DEC     DX
    ;;PUSH  DX
    ;;POP   SI
IO_LOOP:
    DEC     BX
    MOV     AH,3FH
    INT     21H
    ;;; This should work on an non-emulated PC. 
    ;;;AAA      ; AL=0?
    TEST    AX,AX
    JZ      DONE
    ;;CMP   [BYTE PTR SI],1AH
    ;;JZ    DONE
    MOV     AH,40H
    INC     BX
    INC     CX
    INT     21H
    DEC     CX
    JMP     IO_LOOP
DONE:
    RET
ENDS
END MAIN


6

Pepe , 47 bayt

REREEeRErEErREeeEeeeeEREEeeREEeereeREEEEeeEReee

Çevrimiçi deneyin!

Açıklama:

REREEeRE # Push 0,then input (str),then 0 -> (R)
         # The zeroes are pushed to correct the inserting
rEE # Begin loop labelled 0 -> (r)
  rREeeEeeeeE # Push "!" -> (R)
              # r flag inserts it instead of pushing
  REEeeREEee # Move pointer pos 2 steps forward -> (R)
ree # Loop while (R) != 0
REEEEeeE # Remove characters of (R) that are in stack of (r)
         # Removes the 0 in (R)
Reee # Output (R)

Bu kodu nasıl yazıyorsunuz? Kullandığınız bazı kod dönüştürücü var mı? Bu denemek ve yazmak için delice görünüyor
Cruncher

1
@Cruncher 1) Kullandığım bu benim rehber olarak. 2) Hayır, bir kod dönüştürücü kullanmıyorum, sadece kodu yazmak için kılavuzu kullanıyorum.
u_ndefined

6

Labirent ,  19 11 10  9 bayt

33
..
",@

Çevrimiçi deneyin!

Nasıl?

Sol üstte sağa bakan, sonsuz sayıda sıfır yığını olan Labirent'e giriyoruz ...

                         I / O    stack
                                  0,0,0,...
3 - pop * 10 + 3                  3,0,0,0,...
  - 2 neighbours, forward
3 - pop * 10 + 3                  33,0,0,0,...
  - 2 neighbours, forward
. - pop & print chr          !    0,0,0,...
  - T junction from the side
  -   TOS==0, forward
, - read chr or -1       L        76,0,0,0,...   or   -1,0,0,0
  - T junction from the base
  -   if TOS > 0 right:
" -     no-op                     76,0,0,0,...
  -     2 neighbours, forward
. -     pop & print chr      L    0,0,0,...
  -     T junction from the side
  -       TOS==0, forward
3 -       ...back to the start
  -   elif TOS == -1 left:
@ -     exit                                          we're out!


  * right, but on the first occasion (from above) we hit the wall and turn
    around, so that's like a left

Neyse ki, basılamaz olanlarla başa çıkmamıza gerek yok, aksi takdirde ilk sıfır bayt bizi ,ters çevirir ve oyun oynar.



4

Zsh , 32 bayt

for c ('' ${(s::)1})echo -nE $c!

Çevrimiçi deneyin!

(s::)karakterlere ayırır '', başlangıcına boş bir öğe ekler ve ardından echo -nE $c!her birini bir eko olarak ekler !.


4

Perl 5 -p0, 17 6 bayt

s,,!,g

Çevrimiçi deneyin!

Orijinal cevabım -pve oldu $_='!'.s,.,$&!,gr. 11 byte'lık kesim için @Nahuel Fouilleul'e ve -p0bahşiş için @Grimy'ye teşekkürler .



1
@NahuelFouilleul -lp, \n\n\n\ntest durumu için hatalı çıktı verir ( !belirtilen 5 yerine 4 yeni satır ayrılmış ). -p0düzgün çalışıyor
Grimmy

4

6502, 12 bayt (Apple II ise 13 bayt)

6502

Makine kodu, bir çift sıfır sayfa konumunun karakter girişi ($ FE) ve çıkış (FF) donanımına bağlı olduğunu varsayar. 6502 tabanlı sistemlerin çoğu, G / Ç adresleri genellikle sıfır sayfada olmamakla birlikte, bu şekilde G / Ç'yi kolaylaştırmaktadır.

Basit olması için Python ile yazılmış 6502 mikrobilgisayar sistemi simülatörü Py65 kullandım .

İşte Py65'ten bir bellek dökümü. Aşağıdaki kodu $ FE ve $ FF ile çakışmayacak şekilde sıfır sayfada herhangi bir yere yükleyebilirsiniz.

       PC  AC XR YR SP NV-BDIZC
6502: 0000 00 00 00 ff 00110010
.mem 0:b
0000:  a9  21  85  ff  a5  fe  f0  fc  85  ff  d0  f4

Bir Windows komut penceresinde çalıştırırken, istediğiniz bir metni (Ctrl + V) yapıştırabilir veya yazabilirsiniz. Yazıyorsanız, yeni bir satır için Ctrl + J tuşlarına basın (aynı ASCII karakter). İşlemciyi kesmek ve Py65 komut istemine geri dönmek için Ctrl + C tuşlarına basın.

Doğal olarak, montaj kodunu okumak daha kolaydır.

       PC  AC XR YR SP NV-BDIZC
6502: 0000 00 00 00 ff 00110010
.d 00:0b
$0000  a9 21     LDA #$21
$0002  85 ff     STA $ff
$0004  a5 fe     LDA $fe
$0006  f0 fc     BEQ $0004
$0008  85 ff     STA $ff
$000a  d0 f4     BNE $0000

Netlik sağlamak için, işte CBA65 formatında montaj kodu .

; ASSEMBLE:
; cba65 bangit
;
; LOAD/RUN
; python3 py65/monitor.py -i 00fe -o 00ff -l bangit.bin
; goto 0000

        .FILES  BIN=256

; I/O LOCATIONS
GETC    .EQU    $FE             ; (1) MOVING PY65'S GETC TO ZP SHAVES 1 BYTE
PUTC    .EQU    $FF             ; (1) MOVING PY65'S PUTC TO ZP SHAVES 2 BYTES

        .ORG    $0000

VROOM   LDA     #'!'
        STA     PUTC
VROOM2  LDA     GETC
        BEQ     VROOM2
        STA     PUTC
        BNE     VROOM

        .END

Elma II

Yukarıdaki kod boş bir değer olmadığını belirtir, bu nedenle boş olmayan bir değer döndürülene kadar yoklama devam eder.

Karşılaştırma için, Apple I ve Apple II, klavye G / Ç adresinin bit 7'sini ayarlayarak yeni bir karakterin kullanılabilirliğini gösterir; bu, karakterin alınmasından sonra silinmesi gerekir. Bu sistemlerde, karakteristik G / Ç genellikle donanıma doğrudan erişmek yerine sistem monitörü yordamları çağırılarak gerçekleştirilir.

RDKEY ($ FD0C) ve COUT'u ($ FDED) çağırarak, yukarıdakilerin Apple II eşdeğeri 13 baytta kodlanabilir ve RAM'de herhangi bir yerde çalıştırılabilir. İşte bir Android // e emülatöründe çalıştırdığım kod , Android 9'daki a2ix .

Return tuşuna basmak yeni satırla aynı etkiye sahiptir.

*300L

0300-   A9 A1       LDA   #$A1
0302-   20 ED FD    JSR   $FDED
0305-   20 0C FD    JSR   $FD0C
0308-   20 ED FD    JSR   $FDED
030B-   F0 F3       BEQ   $0300

Ünlem işareti için normal $ # 21 yerine ASCII değeri yerine, bunun yerine # $ A1 kullanıldığını fark ettiniz mi? Bunun nedeni, standart ASCII değerlerinin COUT'a gönderilmesinin, bunların "ters modda", beyaz üzerine siyah görünmelerine neden olmasıdır. ASCII'nin siyah beyaz normal beyaz olarak gösterilmesi, COUT çağrılmadan önce akümülatördeki karakter değerine # $ 80 eklenmesini gerektirir. RDKEY, hi-bit setli karakterleri döndürdüğü için, montaj programları genellikle ASCII değerini kullanmadan önce almak için karakterin bitini siler.


1
Siteye Hoşgeldiniz! :)
Rahul Bharadwaj

Teşekkürler, @Rulul!
Lee

4

Bash , 36 bayt

while read -n1 c;do printf \!$c;done

Çevrimiçi deneyin!

Bu, son girdiyi sonlandıran newline'a güvenir! işaret.


Hoşgeldiniz! Lütfen tercüman veya başka bir şey için açıklama veya bağlantı eklemeyi düşünün, çünkü yalnızca kod yanıtları otomatik olarak düşük kaliteli olarak işaretlenir.
mbomb007

@ mbomb007, işaretçi için teşekkürler.
Ağustos’ta

1
Ne yazık ki bu !, girişin sonuna bir ekleme yapmaz .
Kritixi Lithos

@Cowsquack: terminalimde, girişi sonlandıran yeni satır! katma. Tio.run'da girişin bir satır başı ile sonlandırılması gerekiyor. Bunu yansıtmak için Çevrimiçi Deneyin bağlantısına güncellendi.
Ağustos'ta

4

MarioLANG , 95 94 90 89 69 bayt

++++++
======< >)
>+++++++",+[
=======<.==<
>+++++++!(.-
========#===

Çevrimiçi deneyin!

MarioLANG'yi ilk denemede çok eğlenceliydi!

-20 baytlık Jo King'e teşekkürler

Açıklama:

Yani adından da anlaşılacağı gibi, MarioLANG Süper Mario Bros bir oyun gibi yürütmek için yapılır. Bu bir hücre kaseti düzenlenmiş bellek ile, BF benzer şekilde çalışır. Arttırma, azaltma, yazdırma (ascii veya sayısal) ve geçerli bellek hücresine okuyan ve bant boyunca sola veya sağa hareket eden operatörler vardır.

Mario (talimat göstericisi) her zaman programın sol üst hücresinde başlar, amaçlanan hareket yönü sağa ayarlanır. Eğer Mario'nun altında taban benzeri bir nesne yoksa (=, "veya #), taban benzeri bir nesneye ulaşana kadar düşecektir. Mario program alanından çıkarsa, program Game Over :( nedeniyle sona erer.

Bu özel program temel olarak iki yarıya ayrılabilir: kurulum ve döngü.

   Setup                          Loop
-----------------------------------------------
                       |
++++++                 |          
======<                |          >)
>+++++++               |          ",+[
=======<               |          .==<
>+++++++               |          !(.-
========               |          #===

Kurulum bölümünde, ilk bellek hücresini 33'e ulaşana kadar arttırıyoruz - "!" İçin ASCII değeri. Yeterince kolay; Bu golf olabilir, sadece bir şekil meselesidir. Mario üst soldan başlıyor, 10 jeton alıyor, 11'i toplarken düşüyor, yön değiştiriyor, sonra tekrar ediyor. Son 11 jetonu yön değiştirmeden alır; kurulum bölümünü en sağdaki "+" altında sonlandırır.

Döngü bölümünde, Mario bir asansöre ulaşarak başlar. "!" Operatör harekete son vermesini sağlar, böylece asansörde kalır. Arttırıldığında, karşılık gelen ASCII karakterini geçerli bellek hücresinin değerine (bu her zaman 33, "!") Yazdırır, sonra bellekteki bir sonraki hücreye geçer. Mario zirveye ulaşır ve yönünü sağa doğru ayarlar. Düşüyor ve girişten bir karakteri ASCII değeri olarak okuyor (veya karakter yoksa -1). MarioLANG'deki tek kontrol ölçüsü, mevcut bellek hücresi 0 değerine sahipse bir talimatı atlamak olduğu için arttırıyoruz, eğer öyleyse, Mario'nun yönünü değiştirmeyi atlıyoruz. Olmazsa, yönü sola belirleriz; tabandan sola doğru yürümek, mevcut hücreyi önceki değerine düşürür,


Önceki sürüm (89 bayt):

+++++++++++>,
==========@"+
+++++++++++)[
@==========.==<
+++++++++++!(.-
===========#===

Sadece bir sayaç yerine bir çarpım döngüsü kullanarak 62 byte
Jo King,

Tamam şimdi bu harika. Açıklamayı yinelemek için zamanım var olmaz güncellenirim, teşekkürler!
Monica’yı

1
Aha! 60 byte , 8 * 4 + 1 yerine 5 * 6 + 3 ile çarparak
Jo King,

Dostum, tam olarak senin ilk rodeoun olmadığını biliyorum, ama bu gerçekten etkileyici. xD
Monica,

Aslında, bu benim ilk kez MarioLANG'ye golf atmam. Sadece diğer 2D dillerinin yanı sıra brainfuck ile de bazı deneyimlerim var
Jo King

4

Perl 6 , 16 11 bayt

{S:g/<(/!/}

Çevrimiçi deneyin!

Sıfır genişlikteki tüm eşleşmeleri ünlem işareti ile değiştirir. Boş regex'lere izin verilmez, bu nedenle hiçbir şey yakalamak için bir yakalama işaretçisini kullanırız.



3

05AB1E , 4 bayt

€'!Ć

Bir karakter listesi olarak G / Ç.

Çevrimiçi deneyin.

Açıklama:

'!  '# Prepend a "!"-item before each character in the (implicit) input-list
   Ć  # Enclose (append the first character of the list at the end of it)
      # (after which the result is output implicitly)


3

Üçgen , 15 13 bayt

B\3;#*~.,</@<

Çevrimiçi deneyin!

Üçgen'in şartlı bir durdurma işleci olduğunu hatırladıktan sonra -2 bayt.

Bunun bunda olduğu kadar kısa olduğuna inanıyorum. Üçgen , koşullu yön değiştirme operatörlerine sahiptir, ancak ne yazık ki diğer şartlardan farklı çalışırlar. Diğerleri ToS <= 0 olup olmadığını kontrol ederken, yön değiştiren şartlı şartlar ToS! = 0 'ı kontrol eder. Bu durumda olmasaydı şeklinde 10 bayt olurduBq3~#*/@<< .

Ungolfed:

    B
   \ 3
  ; # *
 ~ . , <
/ @ <
----------------------------------------------------
B3*              - Push 11 and 3, then pop both and push their product.
    <,<          - Change directions 3 times (to save 2 bytes on last line)
        @/       - Print Top of Stack value as a character, do not pop
          ~;\    - Push a character from input to ToS. Halt if ToS <= 0. Change Direction.
              #  - Print ToS as a character and pop

Önceki Sürüm (15 bayt):

B.3\.*#).(/?~@<

3

SimpleTemplate , 23 bayt

Bu benim yazdığım bir dil ve şablonları için olması gerekiyordu, ama iyi.

!{@eachargv.0}{@echo_}!

Unungolfed kodunu gördüğünüzde neredeyse açıklayıcı olmalı:

!{@each argv.0 as char} {@echo char}!{@/}

Ve bir açıklama:

  • !- Değişmez !karakteri yazdırır
  • {@each argv.0 as char}- Değer, değişkene ayarlanmış olarak her karakterde dolaşır char( isteğe bağlı , varsayılan değişkendir _). derleyici yöntemine
    argv.0iletilen ilk parametredir render().
  • {@echo char}!- chardeğişkeni ve değişmez !karakteri çıkarır .
    Golf versiyonunda, _bunun yerine varsayılan değişken kullanılır.
  • {@/}- döngüyü kapatır ( isteğe bağlı )

Saf SimpleTemplate çözümü:

{@fn x}!{@eachargv.0}{@echo_}!{@/}{@/}

xAynı sonucu veren bir fonksiyon yaratır .

Bu şekilde kullanabilirsiniz:

{@call x "this is an example"}

Bunların hepsini deneyebilirsiniz: http://sandbox.onlinephpfunctions.com/code/f6baff8d411fc8227ece81eccf05b6e7d3586bfa

Hat 908 üzerinde, değişkenleri kullanabilirsiniz $golfed, $ungolfedve $fntüm sürümlerini test etmek.



Ancak, bir karakter dizisi kullanmasına izin verilirse, kod basitleştirilir (20 bayt):

!{@echoj"!" argv.0}!

Ve asılsız:

!{@echo separator "!" argv.0}!

Temel olarak, dizideki tüm öğeleri çıktılar, etrafıyla "!"çevrili, değişmez ile çevrili !.
Derleyici sınıfındaki sınırlamalar nedeniyle, alan zorunludur (golf versiyonunda).

Bu kod aynı zamanda saf SimpleTemplate'de kullanmak için aşırı derecede zordur (örnek olarak bu işlevi kullanır):

{@fn x}!{@echoj"!" argv.0}!{@/}

{@// alternative: @call str_split into a "a char array"}
{@set a "a", " ", "c", "h", "a", "r", " ", "a", "r", "r", "a", "y"}

{@call x a}

@callO saf olmadığını hangi vasıta, PHP bulunan bir işlevi çağırabilir SimpleTemplate çözümü.



2

Gema , 11 karakter

\A=\!
?=?\!

ne yazık ki ! Gema'da bir yorum başlatır, bu yüzden kaçmanız gerekir.

Örnek çalışma:

bash-5.0$ echo -ne '1 2 3 4 5 6\n129591 129012 129127 129582\n\n0' | gema '\A=\!;?=?\!'
!1! !2! !3! !4! !5! !6!
!1!2!9!5!9!1! !1!2!9!0!1!2! !1!2!9!1!2!7! !1!2!9!5!8!2!
!
!0!

Çevrimiçi deneyin!


2

Jöle , 5 bayt

Ż”!ṁż

Sonucu basan bir dizgeyi kabul eden tam bir program.

Çevrimiçi deneyin!

Nasıl?

Ż”!ṁż - Main Link: list of characters, s   e.g. "abc"
 ”!   - character '!'                           '!'
   ṁ  - mould like:
Ż     -   s with a zero prepended              "!!!!"
    ż - zip together with s                    ["!a","!b","!c",'!']
      - implicit (smashing) print              !a!b!c!

2

Japt , 4 bayt

rP'!

Dene

r      Replace
 P     all empty strings "" with
  '!   An exclamation mark (If '!' wasn't a special character in Japt I could remove the quote)

'Değişim bir sayı olsaydı, sadece hendek olabilirdi.
Shaggy

2

Japt , 4 bayt

rP'!

Dene

Japt -P , 7 bayt

Ne yazık ki !tırnak işareti gerektiren, ayrılmış bir karakterdir.

ï'! i'!

Dene

Açıklamak için çok fazla: ïKartezyen ürünü ve ihazırlar.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.