Marchewki. Więc. Wiele. Marchewki

12

Cholera, to dużo marchewek.

Inspiracja

Inspiracja

Zadanie

Musisz stworzyć program, który w tak wielu językach, jak to możliwe, zastąpi każde wystąpienie ^z wyprzedaży sformatowanej linkiem (czyli, że gdybym miał pisać go w odpowiedzi, to automatycznie odczyta go jako obraz i umieścić obraz zamiast słów) tej marchewki skierowanej ku górze.

Jak korzystać z wymienionego formatowania:

Najpierw w dowolnym miejscu pliku umieść link w ten sposób (oto, co zrobiłem dla tego pytania):

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

A potem, gdziekolwiek chcesz:

[! [] [1]] [1]

Zasady

  • Obowiązują standardowe luki.
  • Dane wejściowe będą realizowane poprzez STDIN lub równoważny.
  • Dane wyjściowe będą realizowane poprzez STDOUT lub równoważne.
  • Twój kod musi być w pełni działającym programem we wszystkich używanych językach.
  • Adres URL użyty do marchewki nie musi być tym w tej odpowiedzi. To był tylko przykład. Możesz użyć dowolnego adresu URL, pod warunkiem, że Markdown SE pokazuje tę konkretną marchewkę.
  • To wyzwanie dla , więc wygrywa odpowiedź z największą ilością języków marchwi !
    • W przypadku remisu wygrywa najkrótszy kod z pozycji o największej liczbie języków.

EDYTOWAĆ:

  • NIE używaj także trywialnych pochodnych języków! Oznacza to używanie języka zastępczego (Brainfuck vs. ShadyAsFuck) i różnych wersji językowych (Python 2 vs. Python 3).

Jest wiele trywialnych esolangów do dopasowania ... (w tym warianty 9001 BF)

Nie bądź tym facetem.

Uwaga: Tak, ten program będzie nieco trywialny w językach z obsługą wyrażeń regularnych. Konkurs polega jednak na sprawdzeniu, z ilu języków mogą korzystać konkurenci.

Addison Crump
źródło
Nie rozumiem wymiany (ta część: [![http://i.stack.imgur.com/mecHl.png][1]][1])
Zereges
@Zereges Czego nie rozumiesz? Jeśli chcesz inny przykład, kliknij „Dodaj odpowiedź”, a następnie naciśnij przycisk obrazu. Automatycznie skonstruuje dla ciebie oznaczenie obrazu, tak jak pokazano w tym pytaniu.
Addison Crump
4
Marchewki na zawsze! ^^^
user41805
1
First, anywhere in the ,Nie jestem pewien, którego słowa tam brakuje.
trichoplax
2
@FryAmTheEggman, nie ma sensu oznaczać pytania zarówno poliglotą, jak i kamieniem rozetowym .
Peter Taylor

Odpowiedzi:

6

Python, Befunge 98, Lisp i JavaScript - 829 827 +2 (-x flaga w pythonie) = 831 829 bajtów

"^\
";/*";
""""(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]"));/*
;>^"'''#*/

Wymaga -xflagi wiersza poleceń podczas uruchamiania z pythonem. Xs można zastąpić dowolny znak. Znaki liczbowe końca linii (i znak liczbowy na początku pierwszego wiersza rozpoczynającego się od średnika) są obecne, aby uniknąć próby befunge wykonania nieprawidłowej instrukcji ;(która rozpoczyna komentarz w lisp). W żadnym z wierszy nie ma spacji końcowych.

Zaoszczędzono dwa bajty, zastępując 55+je, aaby wydrukować nowy wiersz.

pppery
źródło
Tak fantazyjne, takie czyste. Podoba mi się. +1 Dobra robota po ukończeniu więcej niż 3 języków. : D
Addison Crump
19

Minkolang 0.10 , Befunge-93 , > <> ; 3 języki 2D, 321 bajtów

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

Tłumacze ustni : Minkolang , Befunge-93 , > <> .

Przejdę do szczegółów na temat każdego komponentu, jeśli ktoś chce, ale ważne jest, aby wszystkie z nich przeczytały pierwszą i drugą linię pudełka z kodem i wypisały znaki w odpowiednim czasie. Ponadto decyduję się między Befunge a Minkolang /> <>, używając \, który zamienia dwie pierwsze wartości stosu w pierwszym i jest lustrem w pozostałych dwóch. Aby oddzielić Minkolang i> <>, używam !v#. !jest bezwarunkową trampoliną w obu językach, ale #jest lustrem dookólnym w> <> i nie ma możliwości w Minkolangu. Od tego momentu każdy język wykonuje kod we własnym komponencie.

El'endia Starman
źródło
4

Marchew , 60 58 bajtów

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

Wiem, że w tej chwili jest to tylko jeden język, ale pomyślałem, że tak naprawdę nie możemy mieć wyzwania dotyczącego marchewki, na które nie ma odpowiedzi w Marchewce.

Zaoszczędź 2 bajty dzięki @KritixiLithos.

Wyjaśnienie:

#                                          // 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
TheLethalCoder
źródło
Nie znam żadnych języków z #komentarzami, ale możesz łatwo zrobić poliglotę za pomocą jednego z nich, po prostu dodaj ten kod na początku, a następnie podciągnij kod marchewki, aby pozostawić tylko #dane wejściowe.
TheLethalCoder,
2
Nawet nie wiedziałem, dlaczego ten kod działał ( A^częściowo dlatego, że dawno zapomniałem o jego implementacji), ale potem zdałem sobie sprawę, że to z powodu mojego strasznie napisanego interpretera, który nie ma odpowiedniego parsera. Tutaj masz +1 za pomylenie twórcy języka.
user41805
@KritixiLithos Szczerze mówiąc, próbowałem zmusić go do pracy z wyrażeniem regularnym, ale poniosłem porażkę i byłem zaskoczony, kiedy A^skończyłem działać! Zgaduję, że kiedy się podzielisz, zostawiasz puste elementy, więc ^^dajesz [ "", "", "" ].
TheLethalCoder,
Można usunąć +"na końcu i zmienić go ^podczas upuszczania zakończenie "jak tak #^A^S"[![][1]][1]"^[1]: http://i.stack.imgur.com/mecHl.png. Zasadniczo +za pomocą argumentu łańcuchowego przygotowuje ciąg znaków do stosu, ale ^robi to samo dla krótszej liczby bajtów.
user41805,
@KritixiLithos Oczywiście, dziękuję!
TheLethalCoder,