Carote. Così. Molti. Carote


12

Accidenti, sono molte carote.

L'ispirazione

ispirazione

L'obiettivo

È necessario creare un programma che, in quante più lingue possibile, sostituisca ogni istanza ^con un link formattato per il markdown (il che significa che se dovessi postarlo in una risposta, lo leggerebbe automaticamente come immagine e posizionerebbe invece l'immagine delle parole) di questa carota rivolta verso l'alto.

Come usare detta formattazione:

Innanzitutto, ovunque nel file, inserisci il link in questo modo (questo è quello che ho fatto per questa domanda):

[1]: http://i.stack.imgur.com/mecHl.png

E poi, ovunque tu lo voglia:

[! [] [1]] [1]

Regole

  • Si applicano scappatoie standard.
  • L'input avverrà tramite STDIN o equivalente.
  • L'output avverrà tramite STDOUT o equivalente.
  • Il tuo codice deve essere un programma pienamente operativo in tutte le lingue che usi.
  • L'URL che usi per la tua carota non deve essere quello in questa risposta. Questo era solo un esempio. Puoi utilizzare qualsiasi URL, a condizione che Markdown di SE mostri questa carota specifica con esso.
  • Questa è una sfida , quindi vince la risposta con il maggior numero di lingue di carote !
    • In caso di pareggio, vince la dimensione del codice più breve delle voci con il maggior numero di lingue.

MODIFICARE:

  • Inoltre, NON utilizzare derivate banali di lingue! Ciò significa utilizzare un linguaggio di sostituzione (Brainfuck vs. ShadyAsFuck) e versioni linguistiche diverse (Python 2 vs. Python 3).

Ci sono molti esolang banali da adattare ... (comprese le varianti 9001 BF)

Non essere quel ragazzo.

Nota: Sì, questo programma sarà leggermente banale in lingue con supporto regex. Tuttavia, la competizione è vedere quante lingue possono usare i concorrenti.


Non capisco la sostituzione (questa parte: [![http://i.stack.imgur.com/mecHl.png][1]][1])
Zereges

@Zereges Cosa non capisci a riguardo? Se vuoi un altro esempio di questo, fai clic su "Aggiungi una risposta" e quindi premi il pulsante immagine. Costruirà automaticamente il markdown dell'immagine per te, proprio come mostrato in questa domanda.
Addison Crump,

4
Carote per sempre! ^^^
user41805

1
First, anywhere in the ,Non sono sicuro di quale parola manchi.
trichoplax,

2
@FryAmTheEggman, non ha senso che una domanda venga taggata sia in poliglotta che in rosetta .
Peter Taylor,

Risposte:


6

Python, Befunge 98, Lisp e Javascript - 829 827 +2 (-x flag in python) = 831 829 byte

"^\
";/*";
""""(defun q (string part replacement &key (test #'char=))(with-output-to-string (out) (loop with part-length = (length part) for old-pos = 0 then (+ pos part-length) for pos = (search part string :start2 old-pos :test test) do (write-string string out :start old-pos :end (or pos (length string))) when pos do (write-string replacement out) while pos)))(princ "[1]:http://tinyurl.com/qczsjtl
")(ignore-errors (loop (princ (q (read-line) "^" "[![][1]][1]"))))""";import sys;i=sys.stdin.read();print '[1]:http://tinyurl.com/qczsjtl\n'+i.replace('^','[![][1]][1]');"""" """
1;'''
;#<v"[1]:http://tinyurl.com/qczsjtl"$$$
;X v,<
;X >:|XXXXX>v
;vXXX>a,#
;>#@~>:10g-|>,#
;^ XXXXXXXX>$"]1[]]1[][![">:# ,# _#
;X */alert("[1]:http://tinyurl.com/qczsjtl\n"+prompt().split("^").join("[![][1]][1]"));/*
;>^"'''#*/

Richiede il -xflag della riga di comando quando eseguito con Python. le Xs possono essere sostituite con qualsiasi carattere. I segni numerici di fine riga (e il segno numerico all'inizio della prima riga che inizia con un punto e virgola) sono presenti per evitare che si cerchi di eseguire l'istruzione non valida ;(che avvia un commento in lisp). Non c'è spazio finale su nessuna delle linee.

Salvato due byte sostituendo 55+con aper stampare una nuova riga.


Così elegante, così pulito. Mi piace. +1 Complimenti per il completamento con più di 3 lingue. : D
Addison Crump,

19

Minkolang 0.10 , Befunge-93 , > <> ; 3 lingue 2D, 321 byte

v[1]: http://i.stack.imgur.com/mecHl.png
v[![][1]][1] 
>\$$>~:1+!#v_:"^"-#v_1>:34*`#v_v
//  ^             ,<0        <    >:0g,1+v
v#   ,,:*52<          ^+1  ,g1:<@_^#`*85:<1
>!v#(od"^"=,34*&34*[i1+1qO]!O$I)lO58*[i1+0qO].
  >i:0(?v:"^"-?v1>:34*)?vv
  ^           o<0       < > :0go1+v
  oo:*52<        ^+1og1: <^;?)*85:<1

Interpreti: Minkolang , Befunge-93 , > <> .

Andrò nei dettagli su ogni componente se qualcuno lo desidera, ma ciò che è importante è che tutti loro leggano la prima e la seconda riga della casella di codice e producano i caratteri nei momenti appropriati. Inoltre, decido tra Befunge e Minkolang /> <> con l'uso di \, che scambia i primi due valori dello stack nel primo ed è un mirror negli altri due. Per separare Minkolang e> <>, io uso !v#. !è un trampolino incondizionato in entrambe le lingue, ma #è uno specchio omnidirezionale in> <> e un no-op in Minkolang. Da quel momento in poi, ogni lingua esegue il codice nel proprio componente.


4

Carota , 60 58 byte

#^A^S"[![][1]][1]"^[1]: http://i.stack.imgur.com/mecHl.png

So che al momento è solo una lingua, ma ho pensato che non potremmo davvero avere una sfida alle carote a cui non viene data risposta in Carota.

Salvato 2 byte grazie a @KritixiLithos.

Spiegazione:

#                                          // Set the stack to the input
^                                          // Change to operations mode
A^                                         // Convert to array mode by splitting on ^
S"[![][1]][1]"                             // Convert to string mode by joining on
                                           // the literal string supplied
^[1]: http://i.stack.imgur.com/mecHl.png   // Switch back to stack mode and
                                           // append the string literal

Non ho familiarità con nessuna lingua con #commenti, ma potresti facilmente creare un poliglotta con uno di quelli semplicemente aggiungere quel codice all'inizio, quindi sottostringa nel codice carota per lasciare solo #l'input.
TheLethalCoder

2
Non sapevo nemmeno perché funzionasse questo codice (la A^parte, in parte perché avevo dimenticato da tempo la sua implementazione), ma poi mi sono reso conto che era a causa del mio interprete terribilmente scritto che manca un vero parser. Qui, hai un +1 per confondere il creatore della lingua.
user41805

@KritixiLithos Ad essere sincero, stavo cercando di farlo funzionare con una regex e ho fallito miseramente e sono rimasto sorpreso quando ho A^finito per lavorare! Sto indovinando quando si divide, si lascia elementi vuoti così ^^[ "", "", "" ].
TheLethalCoder il

Puoi rimuovere il simbolo +"alla fine e cambiarlo ^mentre fai cadere il finale in questo "modo #^A^S"[![][1]][1]"^[1]: http://i.stack.imgur.com/mecHl.png,. In sostanza, +con un argomento stringa antepone la stringa allo stack, ma ^fa la stessa cosa per un conto breve più breve.
user41805

@KritixiLithos Certo grazie!
TheLethalCoder il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.