Ya parani ya canini çokgen


160

Cadılar Bayramı geldiğinden beri eğlenceli bir küçük kod golf mücadelesi başlatabileceğimi düşündüm!

Zorluk oldukça basittir. Ya trickda çıktısı veren bir program yazmalısınız treat.
"Büküm?" sorabilirsin. Peki açıklayayım:

Programınız aşağıdakileri yapmak zorundadır:

  • İki farklı dilde derlenebilir / çalıştırılabilir olun. Aynı dilin farklı sürümleri sayılmaz.
  • Programı bir dilde çalıştırdığınızda çıktı vermeli trick, diğeri çıktı vermelidir treat. Bu durum ilgisizdir ve dizgiyi beyaz boşluk karakterleriyle doldurmaya izin verilir (örneklere bakın).
  • Bu , bu yüzden en az bayt ile çözüm kazanır.

Birkaç açıklama:

Geçerli çıktılar (Yalnızca kodu iki dilde çalıştırmak için olmayan kelimeler için. Ayrıca, çıkışın başlangıcını veya sonunu işaret etmek için tırnak işaretleri ekleyin. Çözümünüze dahil etmeyin!):

"trick"

"Treat"

"    TReAt"

"
     tRICk          "

Geçersiz çıktılar :

"tri ck"

"tr
eat"

"trck"

Neyle çıkabileceğini görmek istiyorum! Mutlu Golf!

Bunun benim için ilk zorluk olduğunu belirtmek isterim, bu nedenle bu soruya ilişkin önerileriniz varsa lütfen bunları yorum biçiminde bırakın.

Liderler

Burada hem düzenli bir lider tablosu hem de kazananların dile göre bir genel bakışını oluşturmak için bir Stack Snippet'i var.

Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:

# Language Name, N bytes

Gönderinizin Nbüyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:

# Ruby, <s>104</s> <s>101</s> 96 bytes

Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :

# Perl, 43 + 2 (-p flag) = 45 bytes

Dil adını, daha sonra büyük afiş snippet'inde görünecek bir bağlantı da yapabilirsiniz:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


21
Bu meta cevabı , iyi bir neden varsa, yakın kopyaların tolere edilebileceğini belirtir. Bu sorunun Cadılar Bayramı'na yaklaşmaktan kazandığı popülerliğin başlı başına iyi bir sebep olduğuna inanıyorum, bu yüzden tekrar açmak için oy kullanacağım. Cadılar Bayramı'ndan sonra kapatmayı umursamıyorum (ama bunun da iyi bir şey olup olmadığını bilmiyorum).
Aaron

2
@ mbomb007. Bu neyin bir kopyası ?
TRiG

3
kesinlikle bir kopya değil. Diğerinde aynı olan tek şey, aynı zamanda belirtilen çıktıya sahip çokgen bir meydan okuma olması.
Brian Minton

3
... 3 sayfa ... Ben gerçekten bu mevsimlik varyantın geçerli değerine dayanarak çok fazla aktivite oluyor diye düşünüyorum.
wizzwizz4

2
Ne güzel bir soru! Bazı cevapların nasıl aydınlatıldığını ve basit kod parçalarının farklı dillerde farklı anlamlar ifade etmesini seviyorum - örneğin üçlü operatörün doğruluk / yanlışlık ve birlikteliği.
Don Hatch,

Yanıtlar:


145

2sable / pl , 8 bayt

0000000: 74 72 65 61 74 93 d0 cb                          treat...

Her iki program da aynı 8 bayt dosyayla yerel olarak test edilmiştir, bu nedenle bu uygun bir çokgruptur.

2sable: hüner

Bu kod 1252 kodundaki program .

treat“ÐË

Çevrimiçi deneyin!

pl: tedavi et

Bu kod sayfa 437'deki program .

treatô╨╦

Çevrimiçi deneyin!

Nasıl çalışır

2sable: hüner

t         Square root. Errors since there is no input. The exception is caught, the
          stack left unaltered, and the interpreter pretends nothing happened.
 r        Reverse stack.
          Reversed empty stack is still empty stack. ;(
  e       Compute nCr. Errors since there is no input.
   a      Alphanumeric test. Errors since there is no input.
    t     Square root. Errors since there is no input.
     “    Begin a lowercase string literal.
      Ð     Excluding ‘, ’, “, and ”, Ð is the 71st non-ASCII character in CP1252.
       Ë    Excluding ‘, ’, “, and ”, Ë is the 66th non-ASCII character in CP1252.
          (implicit) End string literal.
          Both characters together fetch the dictionary word at index
          71 * 100 + 66 = 7166, which is 'trick'.

pl: tedavi et

treat     Bareword; push the string "treat" on the stack.
     ô    Unimplemented. Does nothing.
      ╨   Flatten the stack. This doesn't affect the output.
       ╦  Unimplemented. Does nothing.

15
Ama bu cevabın çok saçma olduğunu itiraf etmeliyim! Sıradaki ne? Kelimelerden daha kısa bir cevap mı?
BrainStone 26:16

45
Bu cevap son derece etkileyici. İki kelimenin uzunluğundan daha kısa bir program yazmayı başarmanız şaşırtıcı.
DJMcMayhem

1
Ha? Bunlar 2 program
FireCubez

1
@FireCubez Aynı kod, bayt başına bayt. Görsel gösterim kod sayfasına göre değişir.
Dennis,

200

Python / Windows Toplu İş, 25 bayt

print"trick"#||echo.treat

#'Den sonraki her şey python tarafından yorum olarak yorumlanırken, || önceki komutun başarısız olması durumunda bunu çalıştırmanın söylendiğini söyleyen bir VEYA kümesidir.

Ayrıca neredeyse "hile veya muamele" okuduğu gibi bir OR kullanımını da seviyorum :)


33
TBH Ben sadece OR hakkındaki yorum için bunu oyladım.
Jmons

7
TBH Buraya ilk gönderimden 65 oy almayı beklemiyordum :)
nephi12

11
TBH sadece yükseltmelerden bahsetmiyor. Onun Quora değil
Andrew S

3
@SA bu topluluğun yepyeni bir üyesi olarak, bu kadar kısa sürede bu kadar iyi alabilecek bir yazı yapmayı beklemiyordum ve katkıda bulunabildiğim için mutluyum. Övünmeye çalışmıyorum, lütfen yanlış anlama. Yeni olduğum için çok iyi olduğum için çok mutluyum. yorumunuz için teşekkürler :)
nephi12 29:16

2
@YotamSalmon topluluk fikir birliği, STDERR'nin varsayılan olarak yoksayıldığını söylüyor; sadece STDOUT kabul edilir. Komutu tekrar ile deneyin 2>nul.
Conor O'Brien,

153

Boşluk / Yıldızlı, 135 bayt

İşte Cadılar Bayramı'nda açık bir gece gökyüzü!

  + + + + + 
    +

* + + * + *

   + *           
     + +        

 + * +   



 + * +. +. + + * + + *. . .

Yukarıdaki koddan kopyaladığınızda, boş satırlardaki boşlukların korunmayabileceğini unutmayın.

Boşluk "TRICK" çıktılar. Çevrimiçi Deneyin!
Yıldızlı çıkış "TREAT". Çevrimiçi Deneyin!

açıklama

Yıldızlı

Starry tüm sekmeleri ve yeni satırları yok sayar, böylece okuduğu kod aşağıdaki gibidir

         + + + + + +  * +   +*   +  *   +  *       + +   +* +   +* + .  + .   +      +* +   +* . . .

Bu arada, itme değerleri Starry'deki yığın ve aritmetik işlemlere kıyasla çok pahalıdır. Kod, 4 düğmesine basıp kopyalayarak başlar ve üzerinde bir dizi işlem gerçekleştirir ve daha sonra üzerine basılan 2 ve 1 ile, gerekli tüm ASCII değerlerini üretir.

Açıklamalı Kod

Stack (after op)    Code        Operation
4                            +  Push 4
4 4 4 4 4 4          + + + + +  Duplicate top of stack 5 times
4 4 4 4 16            *         Multiply top two items
4 4 4 4 16 16        +          Duplicate top of stack
4 4 4 16 4 16          +        Rotate top three items on stack right
4 4 4 16 20         *           Add top two items
4 4 20 4 16            +        Rotate...
4 4 20 64             *         Multiply...
4 64 4 20              +        Rotate...
4 64 80               *         Multiply...
4 64 80 2                  +    Push 2
4 64 80 2 2          +          Duplicate...
4 64 2 80 2            +        Rotate...
4 64 2 82           *           Add...
4 64 2 82 82         +          Duplicate...
4 64 82 2 82           +        Rotate...
4 64 82 84          *           Add...
4 64 82 84 84          +        Rotate...
4 64 82 84           .          Pop and print as character (T)
4 64 84 82            +         Swap top two items on stack
4 64 84              .          Pop and print... (R)
84 4 64                +        Rotate...
84 4 64 1                 +     Push 1
84 4 65             *           Add...
84 4 65 65           +          Duplicate...
84 65 4 65             +        Rotate...
84 65 69            *           Add...
84 65                .          Pop and print... (E)
84                   .          Pop and print... (A)
                     .          Pop and print... (T)

Beyaz boşluk

Adından da anlaşılacağı gibi, Whitespace yalnızca üç boşluk karakterini (boşluk, sekme ve yeni satır) ayrıştırır. Starry aksine, Boşluk basitçe ASCII değerlerini iter T, R, I, C, ve Kve baskılar onları.

Açıklamalı Kod

<Space><Space><Space><Tab><Space><Tab><Space><Space><Tab><Space><LF> Push the ASCII value of R
<Space><Space><Space><Tab><Space><Tab><Space><Tab><Space><Space><LF> Push the ASCII value of T
<Tab><LF><Space><Space> Pop and print the T
<Tab><LF><Space><Space> Pop and print the R
<Space><Space><Space><Tab><Space><Space><Tab><Space><Space><Tab><LF> Push the ASCII value of I
<Tab><LF><Space><Space> Pop and print the I
<Space><Space><Space><Tab><Space><Space><Tab><Space><Tab><Tab><LF>   Push the ASCII value of K
<Space><Space><Space><Tab><Space><Space><Space><Space><Tab><Tab><LF> Push the ASCII value of C
<Tab><LF><Space><Space> Pop and print the C
<Tab><LF><Space><Space> Pop and print the K
<LF><LF><LF>            Terminate the program. The following line is not run.
<Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><Space><LF>

İtme ve baskıların iç içe geçmesi, yalnızca bayt sayısını etkilememesi nedeniyle estetik nedenlere dayanarak seçildi.


11
çok güzel gökyüzü
lois6b 26:16

8
Bu şimdiye kadar en iyi cevap, çok yaratıcı. ustalıkla şok oldum. ve beceri. Bravo!
nephi12

137

Linux ELF x86 / DOS .COM dosyası, 73 bayt

00000000  7f 45 4c 46 01 00 00 00  1a 00 00 00 1a 00 43 05  |.ELF..........C.|
00000010  02 00 03 00 1a 00 43 05  1a 00 43 05 04 00 00 00  |......C...C.....|
00000020  eb 0c b4 09 ba 41 01 cd  21 c3 20 00 01 00 b2 05  |.....A..!. .....|
00000030  b9 3b 00 43 05 cd 80 2c  04 cd 80 74 72 69 63 6b  |.;.C...,...trick|
00000040  00 74 72 65 61 74 24 eb  d9                       |.treat$..|
00000049

NASM kaynağı:

ORG 0x05430000

BITS 32                                         ;
                                                ;   ELF HEADER    --   PROGRAM HEADER
; ELF HEADER                                    ; +-------------+
DB 0x7f,'E','L','F'                             ; | magic       |    +--------------------+
                                                ; |             |    |                    |
; PROGRAM HEADERS                               ; |             |    |                    |
DD 1                                            ; |*class 32b   | -- | type: PT_LOAD      |
                                                ; |*data none   |    |                    |
                                                ; |*version 0   |    |                    |
                                                ; |*ABI SysV    |    |                    |
DD 0x01a        ; offset = vaddr & (PAGE_SIZE-1); |*ABI vers    | -- | offset             |
                                                ; |             |    |                    |
entry:  DD 0x0543001a                           ; |*PADx7       | -- | vaddr = 0x0543001a |
DW 2                                            ; | ET_EXEC     | -- |*paddr LO           |
DW 3                                            ; | EM_386      | -- |*paddr HI           |
DD 0x0543001a                                   ; |*version     | -- | filesz             |
;       inc     ebx     ; STDOUT_FILENO         ; |             |    |                    |
;       mov     eax, 4  ; SYS_WRITE             ; |             |    |                    |
DD 0x0543001a                                   ; | entry point | -- | memsz              |
DD 4                                            ; | ph offset   | -- | flags: RX          |
                                                ; |             |    |                    |
        jmp     short skip                      ; |*sh offset   | -- |*align              |
BITS 16                                         ; |             |    |                    |
treat:  mov     ah, 9                           ; |             | -- |                    |
        mov     dx, trick + 0x100 + 6           ; |*flags ______|    |                    |
        int     0x21                            ; |______/      |    +--------------------+
        ret                                     ; |*ehsize      |
BITS 32                                         ; |             |
DW 32                                           ; | phentsize   |
DW 1                                            ; | phnum       |
skip:                                           ; |             |
        mov     dl, 5   ; strlen("trick")       ; |*shentsize   |
        mov     ecx, trick                      ; |*shnum       |
                                                ; |*shstrndx    |
                                                ; +-------------+
        int     0x80
        sub     al, 4   ; SYS_EXIT
        int     0x80


trick:  DB      "trick/treat$"

BITS 16
        jmp     short treat

Bu, ELF başlığının, x86 kodu olarak yorumlanan 7F 45 ile başlaması gerçeğini kullanır.

DOS .COM için ilgili parçalar:

-u100 l2
07D2:0100 7F45          JG      0147
-u147 l2
07D2:0147 EBD9          JMP     0122
-u122 l8
07D2:0122 B409          MOV     AH,09
07D2:0124 BA4101        MOV     DX,0141
07D2:0127 CD21          INT     21
07D2:0129 C3            RET
-d141 l6
07D2:0140     74 72 65 61 74 24   -                           treat$

4
Bravo efendim. Bravo.
Draconis

9
Kalbim tekledi.
John Keates,

muppetlabs.com/~breadbox/software/tiny/teensy.html , burada üst üste binme hilesiyle ilgilenen herkes için iyi bir okumadır .
Sparr

4
Bu, bu sitede gördüğüm en iyi cevaplardan biri. Codegolf biraz sık sık akıllıca cevaplar yerine, golf oynamak için oluşturulmuş ezoterik dillere dönüşür. Bu güzel.
Knetic

Bu harika bir şey.
Bekçi

103

kötülük / ZOMBIE , 109 bayt

Başka bir ürkütücü cevap!

xf is a vampire summon task f say "trick" stumble say "jzuueeueeawuuwzaeeaeeaeawuuuuwzuueeueeaw" animate bind

ZOMBIEKod tanımlayan bir vampireadlandırılmış xftek işi finstanciation ve irade çıkışında aktif hale trickkez devre dışı edilmeden önce stumble. Diğer sayçağrı ise ölü koddur (uygun!) ZOMBIEAncak evilkodun çoğunu içerir .

Çünkü evil, xfisim, zanaat yapıp zanaatın jyarattığı zuueeueeawuuwzaeeaeeaeawuuuuwzuueeueeawinişten önce çıkan bir sonrakine atlamak için yapılan bir çağrıdır treat. Aşağıdaki kod yürütülür (küçük harfler) veya dikkate alınmaz, ancak whiçbir çıktı üretilmemesi nedeniyle ihmal edilir .


1
@KevinCruijssen, daha az bilinen ezoterik dillere girmek için bu vesileyle çok memnun oldum :)
Aaron

Peki, kullandığın dördünceden birkaç kez Agony'yi gördüm ve ZOMBIE'yi bir kez gördüğünü hatırlıyorum. Yine de, daha önce HashHell veya kötülüğü duymadım. :)
Kevin Cruijssen

Bunun Halloween teması etkileyici! Bu iki dili hiç duymamıştım
ejfrancis 27:16

95

Python / Perl, 28 bayt

print([]and"trick"or"treat")

açıklama

Yana []Perl bir ArrayRef, bu truthy, ama bu nedenle falsy, Python boş sırası.


7
Benzer şekilde, print({}and"trick"or"treat")Python / Lua'da.
user200783 27.06.2016

1
@ user200783 {}Bir HashRef olduğu için Perl'de de aynı etkiye sahip olacak!
Dom Hastings

2
Python / Ruby için de neredeyse aynıdır, ancak fazladan bir boşluk gerektirir:print ([]and"trick"or"treat")
Value Ink

2
Sevdim! Bu, bool to bool dönüşümünün okunabilirliğe ne yaptığıyla ilgili harika bir yorum.
Don Hatch,

Bu, eğer Lua, Perl ve Python'da çokgen olabilir print({}and"trick"or"treat")!
ckjbgames

48

PHP / JavaScript, 32 30 bayt

Ekranlar trickPHP ve treatJS.

NaN?die(trick):alert('treat');

Bilinmeyen NaNsabit dolaylı olarak PHP tarafından bir dizgeye dönüştürülür ve bunu gerçeğe dönüştürür. JS'de sahte.

Alternatif yöntem, 38 bayt

(1?0:1?0:1)?die(trick):alert('treat');

Üçlü işleç, JS'de haklıdır;

                1 ? 0 : 1 ? 0 : 1
 is parsed as:  1 ? 0 : (1 ? 0 : 1)
 which equals:  0

Ve PHP içinde sol ilişkisel:

                1 ? 0 : 1 ? 0 : 1
 is parsed as:  (1 ? 0 : 1) ? 0 : 1
 which equals:  1

1
Haklısın, benim
Gareth Parker

alert () HTML’de JavaScript'tir, ancak konsolda JavaScript değildir.
Peter Ferrie,

1
Alternatif yöntem: '\ 0' == "\ 0"? Die (hüner): alert ('treat'); `.
Ismael Miguel,

3
PHP'de hata ayıklama zincirli üçlü operatörler çok eğlenceli olmalı.
Robert Fraser

3
@Robert PHP'de herhangi bir şeyi ayıklamak çok eğlenceli.
sampathsris

39

HTML / HTML + JavaScript, 53 bayt

treat<script>document.body.innerHTML='trick'</script>

treatbelgenin HTML'deki metin içeriğidir.
JS etkinleştirilmişse, HTML içeriğinin yerini alacak trick.


3
İlginç bir çözüm. Bunun gibi
BrainStone

1
Bunun document.write()yerine kullanmalısın . -8 bayt
darrylyeo 27:16

@ darrylyeo document.write, HTML çıktısının yerini almaz , ekler.
Titus

1
Chrome'da test edildi. Tamamen çalışır. Javascript'i açmak ve kapatmak, yenileme sırasındaki içeriği değiştirir.
Tatarize

@ Tatarize: Windows'ta Firefox 49, Opera 41, Safari 5.0, Chrome 54, Edge 38, iOS'ta Firefox 5.3 ve Safari 5.0, Android'de Firefox 49 ve Dolphin 11.5'te test edilmiştir. Yalnızca Windows'taki Firefox değiştirilir; diğerleri ekler.
Titus,

33

C / Java 7, 165 155 128 123 122 120 103 bayt

//\
class a{public static void main(String[] s){System.out.print("treat"/*
main(){{puts("trick"/**/);}}

// \ sonraki satırı da C'ye yorum yapar, ancak Java'da normal olarak tek satırlık bir yorumdur, böylece C'nin Java için kullanılan kodu yoksaymasını sağlayabilirsiniz ve ikinci satırda / * ekleyerek Java için yorum yapabilirsiniz. C kodu tarafından ayrıştırıldı

Düzenleme: Satırları ve yorumları yeniden düzenleyerek biraz geliştirdim.

Düzen2: Biraz daha düzenleme yaptım ve daha da kısaltdım.

Düzenleme3: BrainStone tarafından 5 byte çıkarmak için önerilen düzeltmeleri ekledim, teşekkürler :)

Edit4: Bir yeni satır gereksiz olduğu ortaya çıktı, ben de kaldırdım.

Düzen5: Ben printf koyar değiştirdim.

Düzen 6: Ray Hamel tarafından önerilen bir düzeltme ekledim.


1
Şunları yapabilirsiniz 1 bayt C ++ C değişen ve değiştirerek güvenli #include<stdio.h>olan #include<cstdio>. Çok değil ama bir bayt. Ve ayrıca, int infront'un çıkarılması main4 byte güvenli olacaktır. intC ve C ++ tarafından yazılmıştır
BrainStone

Teşekkürler, kodu önerilerinize göre değiştirdim :)
I_LIKE_BREAD7

1
Güzel! Java için bir şeyler bulmakta zorlandım ve kendime Java 7 + Whitespace ile geldim . BTW, boşluğu kaldırarak bir bayt daha golf oynayabilirsiniz String[]s.
Kevin Cruijssen

29

Jolf + Chaîne, 12 bayt

Chaîne kodlama ile yüklemek için bir dosyayı kabul edemediğinden, UTF-8 olduğunu varsayıyorum. (ISO-8859-7'yi varsayabilseydim, bu 11 bayt olurdu, ama bu haksızlık olurdu.)

trick«treat

Chaîne'de, «bir yorum başlar ve gerisi sözlü olarak basılır. Jolf'ta «bir dize başlar. Neyse ki, trickzararlı hiçbir şey yapmaz ( 10; range(input, parseInt(input))temelde) ve treatyazdırılır.

Jolf'u burada dene!

Chaîne'i burada dene!

Her ikisi de tarayıcımda çalışıyor (firefox, en son sürüm), ancak aynı diğer tarayıcılar için söylenemez.


2
Sanırım pek belirsiz dillerin envanteri olmanın faydaları var ...
Conor O'Brien,

1
Çözümlere yaklaşmakta olduğumuzu görmek güzel, sadece kelimelerden mahrum kalıyor. Acaba kimse yeniden kullanabilir mi tr?
BrainStone

1
@BrainStone Şahsen trherhangi bir golfde tekrar kullanılabileceğinden şüpheliyim - bu, en azından bir operatörün golf dillerinde kodlanmasına ve sonra dile özgü bir koşulda kodlanmasına neden olacak küçük bir bilgi parçası . Muhtemelen aynı uzunlukta veya daha uzun bir süre için bile olabilirdi. Ancak, bu sadece benim varsayım;)
Conor O'Brien

Hadi bulalım. Ama aynı fikirdeyim. 10 veya daha az bir bayt sayısı delilik olurdu!
BrainStone


27

#hell / Agony , 43 bayt

Bu kadar ><>her yerde, bu da ne, bir April Fools meydan okuması? İşte uygun temalı dillerle bir cevap.

--<.<.<.<.<.$
io.write("trick")--+<~}~@+{+<

#hellLUANeyse ki io.writeçıktı çağrılarını kabul eden bir altkümedir . Biz kullanmak LUA'ın --yalnızca bu parçayı işlenecek şekilde yorumlar.

AgonyBrainfuckaynı bant üzerinde kendi koduna ve çalışma belleğine sahip olma özelliğine sahip bir türevdir. İlk satır treat, Agonykomut olarak kodladığım kod bölümünün sonundan yalnızca 5 karakter (10 hücre) yazdırıyor . LUA'nin yorum açılışı --kullanılmayan bir hücrenin değerini değiştirir.


Cadılar Bayramı temalı olanların en iyisi olduğunu söylemeliyim. Çok yaratıcı!
BrainStone 26:16

@BrainStone Teşekkürler, onları yaparken çok eğlendim!
Aaron

27

Cubix / Hexagony , 31 bayt

t;./e;_a]"kcirt">o?@;=v=./r;\;/

Kandır onu! Çevrimiçi davranın!

Cadılar Bayramı temalı ? Bu diller ve kod hakkında dehşet verici gerçeklere dikkat edin:

  1. Eğer hiçbir şey yapmazsanız (sadece no-ops koyarsanız), sonsuza dek süreceği belirlenen döngüden asla çıkamazsınız ...
  2. Ve bir 3B ve 2B programlama dilinin ortasında sıkışıp kalmak (Oh agony ...)
  3. Boyutların içinde kademeli olarak nerede olduğunuzu ... nerede olduğunuzu ... kaybedersiniz.
  4. Ve =v=size kodda no-ops olarak hareket eden bir gülümseyen var

31-byte'lık gizli iletişim protokolünün gizemini ve boyutlarını araştıralım ...

hile

Kod katlandığında veya açıldığında ... Yani, cubifieddüzen şöyle görünür:

      t ; .
      / e ;
      _ a ]
" k c i r t " > o ? @ ;
= v = . / r ; \ ; / . .
. . . . . . . . . . . .
      . . .
      . . .
      . . .

Ve ana kısım, orta kısımdaki kısımdır:

" k c i r t " > o ? @ .
. . . . . . . \ ; / . .

k,c,i,r,tYığın üzerine iter ve yansıtıcılar tarafından sınırlanan ve yığının üstündeki değere bağlı olarak sizi yönlendiren bir halka içinde çıkar ove ;çıkar ?...

tedavi etmek

Birdenbire kod bir küpten Hexagon'a dönüşür. (Bunu düşünün)

   t ; . /
  e ; _ a ] 
 " k c i r t 
" > o ? @ ; = 
 v = . / r ;
  \ ; / . .
   . . . .

Ve ana kısım bu kısımdır:

   t ; . /
  e ; _ a ] 
 . . . . . . 
. . . . @ ; = 
 . . . / r ;
  . . . . .
   . . . .

Bu çalıştırır t;hangi baskılar tve ayna vurur ve SE köşeden başlayarak NW onun yönünü döner ve başka bir ayna vurur. Bu hareket eder r;ve sarar e;_ave ]onu, NE köşesinde SE ile başlayan ve o zamana kadar /yatay olarak yansıtan vuruşlarla başlayan İşaretçi İşaretçisine 1 getirir .;t

Sonra sarar =, ;ve @karmaşa biter.

Peki ... _Orada ne yapıyor?

Neden içinde t e a(koddaki ilk 3 harf)?

İşte hikayenin sonu geliyor -

hiçbir şey yapmaz .

Bir korku hikayesinin sonu gibi mi geliyor?


Güzel çok güzel! İki 2D dilden poliglot oluşturmak zordur. Onunla birlikte gelen korku hikayesini seviyorum;)
ETHproductions

Bunun ya da ELF / .COM yanıtının daha etkileyici olduğundan emin değil. Aferin!
val,

24

SQL / Javascript, 54 bayt

select('trick')
--a;function select(){alert("treat")}

QB / JS cevabımdakilerle aynı yaklaşım : İlk satırda SQL deyimi, ikinci satırda SQL için bir “yorum” ve JS için bir NOP var. Ardından, SQL'in selectdeyimini geçerli bir JS işlevi olarak tanımlarız .


3
Bu iki dili birleştirmenin çok akıllıca bir yolu. + 1'leyin!
ETHProductions

22

/Brainf..k/, 143 + 3 = 146 bayt

Bu cevap, -ABrain-Flak için ASCII'de bayrak çıktısını gerektirir ve neyse ki Brainfuck bu bayrakla ilgilenmiyor, böylece Brainfuck'taki çıktısını etkilemiyor.

(((((()(()()()){})({}){}){}){})+++++++[<+++<(((()()()())((((({}){}){}){}){}()))[][][][]())>>-])<[<++++>-]<.--.---------.------.>++[<++++>-]<.>>

Çevrimiçi Deneyin!

Çevrimiçi Deneyin!

Bu nasıl çalışır

Brain-Flak ve Brainfuck'ın sözdizimi arasındaki tek örtüşme karakterlerdir <>[]. Beyin flakası için bu, programın eşit sayıda yığın anahtarı sağlaması gerektiği anlamına gelir <>. Brainfuck için bunun anlamı, []monad kullanımının neden olduğu sonsuz döngülerden kaçınmamız gerektiğidir .

Brain-Flak kodu aşağıdaki gibidir:

(((((()(()()()){})({}){}){}){})[<<(((()()()())((((({}){}){}){}){}()))[][][][]())>>])<[<>]<>[<>]<>>

[<<...>>]Ortadaki ve <[<>]<>[<>]<>>sondaki bitlerin yanı sıra, bu kod Brain-Flak programlarının yürüdüğü kadarıyla kurs için oldukça uygun. Zero ( [<...>]) etrafındaki negatif Brainfuck için bir döngü oluşturmak için oradadır. İç <...>kısım Brainfuck'u boş bir hücreye hareket ettirmek için kullanılır [][][][].

Brainfuck kodu aşağıdaki gibidir:

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

Yukarıda belirtilen bitlerin yanı sıra, bu aynı zamanda oldukça standart bir programdır, bu yüzden size detayları vereceğim.


Bunu beğendim: D
Conor O'Brien,

9
Orada bir olan LOT regex maç ikiden fazla dil /brainf..k/, bu nedenle herkesle aynı başlık biçimini kullanmalısınız.
mbomb007

13
@ mbomb007 bu regex'e uyan bulabildiğim diğer dil beynin beyin olduğunu . Beyin fırtınasında çalıştırıldığında uygun bir şekilde bu "TRICK" yazıyor, bu yüzden regex'i şimdilik bırakacağım.
Sriotchilism O'Zaic 26:16

For brain-flak this mostly means the program has to ensure an even number of stack switchesBundan emin misin? <>
Beyin sapağında

@DJMcMayhem aynı yığında sona ermeli, aksi halde hiçbir şey yazmaz.
Sriotchilism O'Zaic 26:16

21

> <> / Balık tutma , 38 bayt

_"kcirt"ooooo;
[+vCCCCCCCC
   `treat`N

Bir ><>/ Fishingpolyglot yapmak uğruna .

FishingUzun zamandır oynadıktan sonra ilk kod parçam ><>.
İlk izlenim: doğada olduğu gibi, balıkçı namazından daha az fiziksel yeteneklere sahip ancak aracıyla telafi ediyor!

Burada kod son derece basittir: ><>sadece _dikey bir ayna olan ve balık yatay olarak yüzmeye başladığından hiçbir etkisi olmayan ilk satırı gerçekleştirir . Sadece trickyığına iter ve durmadan önce yazdırır.
Çünkü Fishing, _aşağı inmeyi söyler. Balıkçı, üçüncü satırın karakterlerini yakalarken ikinci satır olan güverteyi takip edecektir. Bunlar treatkaseti iter ve ardından yazdırır, desteğin sonuna geldiğinde durur.

Dışarı erroring izin verilirse, çalıştırdığınızda olarak bir hata atar aşağıdaki kodla 35 bayt aşağı gidebiliriz ><>kez trickyığını kapalı yazdırılır:

_"kcirt">o<
[+vCCCCCCCC
   `treat`N

Ayrıca temalı dillerimin cevaplarını da kontrol etmelisiniz: #hell / Agony ve evil / ZOMBIE !


Bir balık / balıkçılık poliglot yapmak istedim :) Beni yendin. Güzel!
Emigna

" Doğada olduğu gibi, balıkçı, dua etmekten daha az fiziksel yeteneklere sahip ancak aracıyla telafi ediyor! "
Kevin Cruijssen

20

05AB1E / Aslında , 10 bayt

"trick"’®Â

açıklama

05AB1E

"trick"     # push the string "trick"
       ’®Â  # push the string "treat"
            # implicitly print top of stack (treat)

Çevrimiçi deneyin

Aslında

"trick"     # push the string "trick"
       ’®Â  # not recognized commands (ignored)
            # implicit print (trick)

Çevrimiçi deneyin


Biliyor musun, açıkça okuyabilirim trick, ama nasıl ’®Â
davranılır

1
Artık insanlar bu özelliği biliyor. Bir dahaki sefere " hQq3k veya bvM; p polyglot " gibi sorular alırız ...
jimmy23013 26:16

3
@KevinCruijssen: '®Â, "muamele" olan "sözlükten 3757 indeksli kelimeyi al" olarak çevrilmiştir.
Emigna

@Emigna Tamam ... Yani tüm ~ 1.1M İngilizce kelimeler 05AB1E'de erişilebilir durumda mı?
Kevin Cruijssen

1
@KevinCruijssen: Hayır, toplamda 10k var (her biri 2 karakter olarak gösterilebilir). Listenin tamamını burada bulabilirsiniz .
Emigna

16

Haskell / Standart ML , 56 bayt

fun putStr x=print"treat";val main=();main=putStr"trick"

Haskell görünümü

Noktalı virgül, bir satırda birden fazla bildirime izin verir ve satır çizgiler gibi davranır,

fun putStr x=print"treat"
val main=()
main=putStr"trick"

mainİşlev çağrılarak bir Haskell programı yürütülür , bu nedenle son satırda putStr"trick"yalnızca yazdırılan yürütülür trick.
İlk iki satır, deseni izleyen fonksiyon bildirimleri olarak yorumlanır <functionName> <argumentName1> ... <argumentNameN> = <functionBody>. Yani ilk satırda adında bir fonksiyon funiki adlandırılmış argümanları aldığı bildirildi putStrve xve fonksiyon gövdesini print"treat". Bu, türüne sahip geçerli bir Haskell işlevidir fun :: t -> t1 -> IO (), yani isteğe bağlı bir tür argümanı alır tve bazı türlerden ikincisi ise t1daha sonra bir GÇ eylemi döndürür. Tipler tve t1argümanlar önemli değildir, işlev gövdesinde kullanılmaz. IO-action tipi StdOut'a print"treat"basan sonuçlardan kaynaklanmaktadır "treat"( "bu nedenle dikkat edin)putStryerine printkullanılır main). Ancak bu yalnızca bir işlev bildirimi olduğundan, aslında funçağrılmadığı gibi hiçbir şey yazdırılmaz main.
Aynısı, ikinci satırda gerçekleşir , boş dize olan ve birimi döndüren keyfi bir argüman alan bir val main=();işlev valilan edilir . Türü: (Hem değer hem de birim tipi ile belirtilir ). main()val :: t -> ()()

Ideone'da dene.


Standart ML görünümü

Standart ML , Haskell ile ilgili olan fakat aynı olmayan bir sözdizimi olan temel olarak işlevsel bir dildir. Özellikle, işlev bildirimleri funherhangi bir argüman alırsa , anahtar kelimeyle birlikte gelirse , anahtar kelimeyle önceden eklenir val. Ayrıca, program çalıştırıldığında yürütülen bir ifadenin en üst düzeyde (herhangi bir bildirimin içinde değil) olması mümkündür. (Haskell'de 1+2bir bildirinin dışında yazılı bir naked expression at top levelhataya atılır). Sonunda eşitliği test etmek için sembol Haskell =yerine ==. (Daha birçok farklılıklar var, ancak bu program için önemli olan tek şey bunlar.)
Böylece SML iki beyan görüyor

fun putStr x=print"treat";
val main=();

ardından bir ifade

main=putStr"trick"

bu daha sonra değerlendirilir. mainEşit olup olmadığını belirlemek için putStr"trick"her iki taraf da değerlendirilmeli ve her ikisi de aynı tipte olmalıdır, SML (Haskell gibi) statik olarak yazılmıştır. Önce sağ tarafa bir göz atalım: putStrSML'de bir kütüphane işlevi değil, ancak putStrsatırda adlandırılmış bir işlev ilan ettik fun putStr x=print"treat";- bir argüman alır x(bu "trick"bizim durumumuzdaki dizedir ) ve hemen tekrar unutur. fonksiyon gövdesinde oluşmaz. Ardından, print"treat"baskı yapan gövde çalıştırılır treat(çevrilmeden ", SML'ler printHaskell'inkinden farklıdır print).
printtipine sahip string -> unit, bu yüzden putStrtipe sahip a -> unitve bu nedenle putStr"trick"sadece tipe sahipunit. Sipariş iyi yazılması olarak, maintürüne sahip olmalıdır unitda. Birimin değeri SML'de Haskell ile aynıdır (), bu yüzden ilan ediyoruz val main=();ve her şey iyi yazılmış.

Kodlama alanında dene.
Not: Konsoldaki çıkış

val putStr = fn : 'a -> unit                                   
val main = () : unit                                                    
treatval it = true : bool

çünkü SML \ NJ'de her bildirimin değeri ve türü her bildirimin ardından görüntülenir. Bu nedenle ilk önce, türleri putStrve maingösterilmekte, sonra ifadeler treatyazdırılmaya neden olarak değerlendirilmektedir , daha sonra ifadenin değeri ( trueher iki tarafı da olduğu =gibi ()), itaynı zamanda görüntülenen örtük sonuç değişkenine bağlanmaktadır .


1
Her zaman fun ... ... =için sözdizimsel şeker olduğunu düşündüm val rec ... = fn ... =>. Ama yine de, ML kullandığımdan beri onlarca yıl geçti.
Neil,

@Neil Haklısın, funanonim işlev için bağlı olan sözdizimsel bir şekerdir val( recsadece işlev özyineliyse gerekli olur) ve bu nedenle "öneklenmeli" formülasyonu kötü bir şekilde seçildiyse, cevabı düzenleyeceğim. Genel olarak funkullanım en iyi yöntemdir, özellikle de kod golfünde çok daha kısadır.
Laikoni,

15

Ruby / C, 64 62 51 48 bayt

#define tap main()
tap{puts(0?"trick":"treat");}

Ruby'nin gördüğü:

tap{puts(0?"trick":"treat");}

tapYöntem, bir blok alır ve bir kez çalıştırır. Bu #define, C için bir makro oluşturabileceğimiz kısa bir tanımlayıcıdır . Ayrıca, Ruby {}çoğu bağlamda izin vermiyor olsa da paylaşılan koda parantez içine alınmış bir blok koymamıza olanak tanır .

Ruby'deki tek sahte değerler falseve nil. Özellikle, 0 truthy'dir. Böylece, Ruby "hile" basacaktır.

Ne görüyor (ön işlemden sonra):

main(){puts(0?"trick":"treat");}

0 C’de sahtedir, bu nedenle C "muamele" yi basacaktır.

Daniero sayesinde 2 bayt kurtarıldı.


1
Güzel. İki byte kaydetmek putsyerine kullanabilirsinizprintf
daniero

Teşekkürler! Ben sadece her zaman printfC kullanarak kullanmaya çok alışkınım , onun da bir putsişlevi olduğunu unuttum .
m-chrzan

İki fikir: Daha kısa bir şey kullanamaz tapmısın? Ve neden uzaylardan kurtulmadın? p ? "trick":"treat"=>p?"trick":"treat"
BrainStone

tapaslında iki amaca hizmet eder. #defineMandallamak için kısa bir tanımlayıcıdır , ancak ayraçları doğrudan Ruby koduna koymamı sağlar. {}Ruby'deki bloklar, C ve benzer dillerde olduğu gibi tap çalışmaz , ancak bir blok alır ve bir kez çalıştırır.
m-chrzan

Ruby'deki yöntem adları bir soru işareti ile bitebilir, bu yüzden sonra bir boşluk gerekir p. ?<character>bir karakter değişmezdir, bundan sonra bir boşluğa ihtiyaç duyulur ?.
m-chrzan

15

QBasic / JavaScript, 51 44 bayt

'';PRINT=a=>{alert("Treat")}
PRINT("Trick")

QBasic'te ikinci satırı yazdırıyor ve ilk satırı gerçekleştirmiyor çünkü yorum olduğuna inanılıyor (teşekkür ederim). JS'de, JS NOP'den hemen sonra ilk satırda tanımlanan PRINT işlevini çağırır '';.


1
Çok akıllıca bir yaklaşım!
BrainStone

14

ShapeScript / Foo , 13 bayt

'trick'"treat

Çevrimiçi deneyin! numara | tedavi etmek

Nasıl çalışır

ShapeScript karakter karakter ayrıştırılır. EOF kapanış teklifine rastlamadan vurulduğunda, hiçbir şey yığına itilmez. 'trick'dizeyi, STDOUT'a dolaylı olarak basılan tırnakların içine iter.

Foo'nun karakterlere atanmış herhangi bir komutu yoktur 'trick', bu yüzden bu kısım sessizce göz ardı edilir. Ancak, kapanış teklifi eksik olsa bile, hemen çift tırnak arasında STDOUT'a bir şey yazdırabilir.


14

Ruby / Perl, 21 bayt

print"trick"%1||treat

Perl

Hesaplar "trick" % 1olduğunu 0 % 1böylece ||gönderir treatiçin printPerl barewords kabul beri yerine.

Yakut

Dizeyi biçimlendirir "trick"argüman ile 1sonuçlanır "trick"truthy olan, yani ||işlenmez.


14

MATL / CJam , 17 bayt

'TRICK'%];"TREAT"

MATL'de bu çıktılar TRICK . CJam'de çıktılar TREAT .

açıklama

Matl

'TRICK'         Push this string
%];"TREAT"      Comment: ignored
                Implicit display

CJam

'T              Push character 'T'
R               Push variable R, predefined to empty string
I               Push variable I, predefined to 18
C               Push variable C, predefined to 12
K               Push variable K, predefined to 20
'%              Push character '%'
]               Concatenate stack into an array
;               Discard
"TREAT"         Push this string
                Implicit display

Orada 3 karakter kaçırıyorsun! (EAT)
Yıkılabilir Limon

@ YıkılabilirWatermelon Teşekkürler! Düzenlendi
Luis Mendo

Şimdi MATL açıklamasında üç tane eksik!
Yıkılabilir Limon,

@ Yıkılabilir Karpuz Aww. Tekrar teşekkürler :-D
Luis Mendo

12

Jöle / pl , 12 bayt

0000000: 74 72 65 61 74 0a 7f fe 00 ba 49 fb                 treat.....I.

Bu Jelly'in kod sayfası kullanılarak görüntülenen programdır .

treatµ
“¡ṾI»

Çevrimiçi deneyin!

Bu, kod sayfası 437 kullanılarak görüntülenen programdır .

treat
⌂■␀║I√

Çevrimiçi deneyin!

Her iki program da aynı 12 bayt dosyayla yerel olarak test edilmiştir, bu nedenle bu uygun bir çokgruptur.

Nasıl çalışır

Jelly, her çizgi bir tanımlayan bağlantı (fonksiyonu); Son satır , program çalıştırıldığında otomatik olarak yürütülen ana bağlantıyı tanımlar . Son 7fbayttan önceki kod (Jelly'in kod sayfasındaki satır besleme) bir ayrıştırıcı hatası içermezse (yürütmeyi hemen iptal eder), bunlar dikkate alınmaz. Son satır, programın sonunda örtük olarak basılan “¡ṾI»kelime numarasını almak için basitçe Jelly'in sözlüğüne endekslenir .

Pl hakkında fazla bir şey bilmiyorum, ancak tercümanın sadece bir satır kod aldığını ve ondan sonra gelen her şeyi görmezden geldiği anlaşılıyor. Perl'de olduğu gibi, korkaklar teller olarak kabul edilir, bu yüzden treattam olarak basar.


12

Amaç-C / C, 50 bayt

puts(){printf("trick");}main(){printf("treat\n");}

Objective-C şekerleme yaptı ve baskılar tedavi edildi , fakat C yapmadı ve numarayı bastırdı .

Nasıl çalışır

Objective-C hakkında fazla bir şey bilmiyorum , ama bu durumda makul olarak bekleyeceğimiz şeyi yapıyor. Yeniden tanımlama putsbiz işlevi çağırmak asla beri çıktıyı etkilemez ve mainbaskılar tedavi ve STDOUT bir satır besleme.

C'nin de aynı şeyi yapmasını bekleyebilirsiniz , ancak en azından gcc 4.8, gcc 5.3 ve clang 3.7 değildir.

Gerçek printf'e ihtiyacımız olmadığından (bu bir format dizgisi ve ek argümanlar alır) ve basılacak olan dizginin satır beslemesi ile bittiğinden , bunun yerine puts kullanabiliriz . koyar biraz daha hızlıdır printf biz işlevi yeniden tanımlamak sürece, (yazdırmadan önce kendi argümanları analiz sahip olan) printf yanı, derleyici optimize eder ve çağrıyı yerine printf çağrısı ile koyar . Küçük derleyici yapar çağırarak biliyoruz putsargümanı ile "treat"yazdırılırken kandırmak yerine!

Dahil değil stdio.h tanımlayan beri, burada çok önemlidir koyar o başlık dosyasına sahip aynı tür kullanarak gerektirecektir ( puts(const char*)).

Son olarak, çağrı dikkat çekicidir printf içinde koyar bir dize geçer olmadan bir eğik satır besleme. Aksi takdirde, derleyici bu çağrıyı "optimize eder" ve bir segmentasyon hatasına neden olur.


10

Toplu iş / sh, 30 bayt

:;echo Treat;exit
@echo Trick

Açıklama. Batch, ilk satırı görmezden geldiği bir etiket olarak görür ve Trick'i basan ikinci satırı uygular. @, Batch’in varsayılan komutunu stdout komutuna ekler (Etiketler asla yankılanmaz.) Bu arada, aşağıdakileri görür:

:
echo Treat
exit
@echo Trick

İlk satır hiçbir şey yapmaz (takma adıdır true), ikinci satır Treat yazdırır ve üçüncü satır komut dosyasından çıkar, böylece @ echo Trick'ine asla ulaşılmaz.


10

sed / Hexagony 32 bayt

/$/ctrick
#$@$a</;r;e;/t;....\t;

sed

Çevrimiçi Deneyin!

trickGirişin sonunda boş bir dize varsa, ilk satır yazdırılır . (girdi yoksa sed hiçbir şey yapmaz, ancak bu durumda stdin üzerinde boş bir satıra izin verilir)

Örnek çalışma:

$ echo | sed -f TrickOrTreat.sed
trick

Hexagony

Çevrimiçi Deneyin!

Birincisi /komut göstergesini yukarı ve sola yönlendirir, böylece sed için kullanılan metni atlayarak alt solu sarar. R'yi sed kodundan tekrar kullanır ve etkisiz kalması için birkaç kişi daha çalıştırır. Genişletilmiş altıgen şuna benzer:

   / $ / c 
  t r i c k
 # $ @ $ a <
/ ; r ; e ; /
 t ; . . . . 
  \ t ; . .
   . . . .

Çıktı:

treat

Yürütme yolunun resimlerini içeren Hexagony yazılarını gördüm, bunları oluşturmak kolay mı?
Riley,


1
Hexagony kodunuz önde gelen bir boş bayt yazdırır. Bunun, bu zorluğun amaçları için boşluk olarak sayılıp sayılmadığından emin değil.
Martin Ender

@MartinEnder İzin verilen gibi görünüyor. Bunu gösterdiğin için teşekkürler, her zaman bir nedenden ötürü özlüyorum ...
Riley

Birkaç byte tasarruf ederken (büyük harf yazdırma pahasına, Atüm harfleri büyük harf olarak değiştirerek daha az çirkin yapabilseniz de
Martin Ender

10

C # / Java

Bu muhtemelen kendi başına çalışmadığı için kalifiye değil, ancak meydan okuma bana C # ve Java'nın dize karşılaştırmasını nasıl farklı bir şekilde ele aldığına dair bir tuhaflığı hatırlattı.

Aşağıdaki işlev C # ve Java'da geçerlidir, ancak farklı bir değer döndürür ...

public static String TrickOrTreat(){
    String m = "Oct";
    String d = "31";
    return m + d == "Oct31" ? "Trick" : "Treat";
}

Gerçekten ilginç bir şey.
BrainStone

10

Beyin Flak / Beyin Flueue, 265 253 219 165 139 115 113 101 bayt

İçin +1 içerir -A

Buğday Sihirbazı'na ileri geri gittikleri için teşekkürler, benimle birlikte birbirlerinin kodlarından birkaç bayt golf attılar.

((((()()()))([]((({}{}))({}([((({}()())))]([](({}{}){}){}{})))[]))[])[()()])({}()()){}({})({}[][]){}

Brain-Flak: Çevrimiçi deneyin!
Beyin-Baca: Çevrimiçi deneyin!

Açıklama:
İlk bölüm Brain-Flak'ın gördüğü değerleri listeler.
Beyin-Baca'ya geçtiğinde, değerleri Beyin-Baca'nın gördüğü gibi listelemeye başladım.

# Brain-Flak
(
 (((()()()))             # Push 3 twice
  ([]                    # Use the height to evaluate to 2
   (
    (({}{}))             # Use both 3s to push 6 twice
    ({}                  # Use one of those 6s to evaluate to 6
     ([((({}()())))]     # Use the other 6 to push 8 three times and evaluate to -8
      ([](({}{}){}){}{}) # Use all three 8s to push 75
     )                   # The -8 makes this push 67
    )                    # The 6 makes this push 73
   [])                   # Use the height and the 6 to push 82
  )                      # Use the 2 to push 84

# Brain-flueue
 [])     # Use the height and 3 to push 84
[()()])  # Push 82
({}()()) # 67 is at the front of the queue, so use that to push 69
{}       # Pop one from the queue
({})     # 65 is next on the queue so move to the end
({}[][]) # 74 is next, so use that and the height to push 84
{}       # Pop that last value from TRICK


9

PowerShell / Foo, 14 bayt

'trick'#"treat

'trick'PowerShell içinde bir dize oluşturur ve boru hattı üzerinde bırakır. #Yorum başlar, böylece programın tamamlar ve örtük Write-Outputbaskılar trick.

Foo yılında (Online deneyin!) , 'trick'Göz ardı edilir #nedenlerini uyku programı 0(dizinin işaretçisi şey yok çünkü) saniye sonra "treatbir dize başlatır. EOF'ye ulaşıldığından beri ", dizeyi kapatmak için bir örtük var ve bu stdout'a basılıyor.


Ayrıca J / Foo'da da çalışır.
Conor O'Brien,

@ ConorO'Brien Açıklama aynı mı? Hiç J kullanmamıştım ve aşina değilim.
AdmBorkBork

Hayır, bu J'de çalışmıyor. # Kopyalama işlevidir ve dizeleri değil, yalnızca negatif olmayan karmaşık sol argümanlarını alır. Yorum sembolüNB.
Adám

@ Adám haklısın. Unuttum#
Conor O'Brien,

9

PHP / Perl, 28 bayt

print defined&x?trick:treat;

defined&x
PHP'de bir şey truthy verir (neden hiçbir fikrim yok, ama öyle).
Perl'de fonksiyonun xtanımlanmış olup olmadığını kontrol eder - hangisi değildir.
-> trickPHP'de, treatPerl'de.


@jmathews Windows sürümünüze bir geri dönüş kontrolü karakteri koymayı denediniz mi? Ne hakkında CLS?
Titus

`tanımlanmış & x veya d & x'in gerçek değeri, hangisini alamadığını sorma
Jörg Hülsermann
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.