Z centrali Quine :
Napisz quine, która pobiera jako nazwę języka i wypisuje to samo zaimplementowane w języku wejściowym.
W artykule źródłowym jest coś, z czego można pracować, ale jak mówi autor, jest to o wiele trudniejsze. Oczywiście musisz obsługiwać tylko ograniczony zestaw języków. Wybór należy jednak do ciebie, podobnie jak język podstawowy.
Jako wyzwanie kodowe twój wynik będzie liczbą języków obsługiwanych przez twój program; wyżej jest lepiej.
code-challenge
quine
marcog
źródło
źródło
Odpowiedzi:
Rubin
Pyton
Obie wersje pobierają dane wejściowe na standardowe wejście (
ruby
lubpython
obecnie) i generują dane wyjściowe na standardowe wejście w dowolnym języku.źródło
Języki Turtlèd , Python 2 i Python 3, 3, rywalizują tylko o nagrodę
wszyscy oneliniści obserwowani przez newline
Turtlèd
Wypróbuj online!
Python 2
Wypróbuj online!
Python 3
Wypróbuj online!
Wyjaśnienie:
Dla każdego języka wziąłem już napisane quiny i trochę je zmodyfikowałem.
Turtlèd pierwszy:
Turtlèd obejmuje standardową strukturę quine. jednakże, jeśli wejście kończy się na 2 lub 3, dołącza koniec kodu python, 2 lub 3, dołącza je oba osobno do wyjścia quine, a następnie wraca do początku i dodaje
x='
. W przeciwnym razie kod źródłowy zostanie pozostawiony i wyprowadzony jak zwykły quineZauważ też, że wymaga to wprowadzania danych dwa razy
!!.
, ponieważ źródło zawiera nowy wiersz, który podaje dane do wprowadzenia pustej linii.jednakże, w drodze do początku łańcucha, aby uniknąć faktu, że łańcuch nie może
'
w nim mieć , zmienia wszystkie'
główne źródła po drodzey
. jeśli tak, ucieczka cytatów może być denerwująca, jeśli to możliweto zależy od podstępu; Nie mogłem napisać
(''y)
,(pseudocode:if cell is ', write y)
bo wtedy nie można byłoby tego odróżnić od „. więc używam y z wejścia „Python”! to był dla mnie prawdziwy moment eureki.są też quinopodobne rzeczy w Pythonie.
Jak działa quinelike podobny do Pythona:
działa jak zwykły quine, tyle że zawiera również zmienną x
jeśli ma wejście w Pythonie 3, działa jak zwykła quine i używa formatowania%, aby uwzględnić także źródło dla Turtlèd.
jeśli ma wejściowy Python 2, zamienia
input
w ciągu naraw_input
, a poza tym robi dokładnie to samo.jeśli wejście to Turtlèd, to zastępuje
y
s w źródle Turtlèd i drukuje je.Dwa programy python działają tak samo i pobierają dane w ten sam sposób
źródło