Pyth jest w ciągłym rozwoju, co oznacza, że cały czas są dodawane nowe funkcje.
Chcę sprawić, by Pyth był lepszym językiem, dlatego chciałbym wiedzieć, jakich funkcji szukają ludzie.
To miejsce, w którym masz pomysły na ulepszenie Pytha.
W swojej odpowiedzi proszę podać:
To, co chcesz zobaczyć zmienione / dodane.
Przykładowe zastosowanie zmiany.
Skomentuję, jeśli planuję wdrożyć sugestię.
Sprawdź, czy pomysł, który chcesz zasugerować, został już zasugerowany. Oceń pomysły, które chcesz wdrożyć.
Wdrożone sugestie:
Eval string w Pyth , as
.v
Złóż aplikację While as
.W
Nested Loops and More Lambdas (używają tego samego mechanizmu poniżej)
Spłaszcz listy zagnieżdżone jako
.n
To było na ten temat, jak na to meta pytanie, kiedy zamieściłem pytanie, nie jest już jasne.
Odpowiedzi:
Pętle zagnieżdżone
Jeśli chcesz zagnieżdżać
for
pętle, musisz obecnie zmarnować bajt na użycieF<var><seq>
wewnątrz aV<seq>
lub vice versa. Chciałbym mieć to samo, co z lambdas, gdzie zmienna używana dla pętli zmieniałaby się podczas zagnieżdżania pętli.źródło
L
, które mogłyby przedefiniować, powiedzmy,C
za drugim razem, kiedy zostały wywołane.Turt
Pyth ekwiwalent grafiki żółwia , zgodnie z
import turtle
.źródło
Łatwiejszy import modułu
Do tej pory za każdym razem, gdy korzystałem
$
, było coś takiego:Może być nowa funkcja, która podsumowuje to na przykład
.$
:Lub używając nowszej składni,
_M
która może nie być łatwa / możliwa do wykonania:Ponadto jedna funkcja z każdym arsem może otrzymać jednuliterową nazwę makra, aby wywołania te mogły być krótsze (z wyjątkiem
_$
opcji).źródło
Spanie
Spowodowało to kłopoty tutaj , a @ mbomb007 zasugerował, aby umieścić to jako ulepszenie Pyth . Zasadniczo teraz, aby spać przez określoną liczbę sekund, muszę zrobić coś takiego:
Co jest denerwujące i długie jak cholera.
źródło
f>.d1Q0
na przykład śpiQ
sekundy.J.d0f>-.d0JQ0
. To jednak dość długo ... Zgadzam się, funkcja snu byłaby miła.Więcej lambdów
To jest naprawdę pomysł FryAmTheEggman , ale publikuję go, aby go udostępnić .
Czasami stwierdzam, że użycie dwóch różnych jednoargumentowych lambd skróciłoby kod, podczas gdy konieczność użycia dwuargumentowego lambda dla jednego nie.
Byłoby miło mieć
L
,M
a za każdym razem znajomi redefiniują inną funkcję; na przykład ten kod:można skompilować do:
Oczywiście dokładny wybór funkcji można zmienić.
źródło
Ulepszone tablice wielowymiarowe
Obecnie używanie tablic wielowymiarowych jest raczej trudne. Na przykład kod C
A[B][C][D]
tłumaczy się@@@ABCD
w Pyth. Coś podobnego@A[BCD)
byłoby znacznie ładniejsze (choć nie krótsze tutaj). To samo dotyczyX
;A[B][C][D] = E
jest obecnieX@@ABCDE
, kiedy może byćXA[BCD)E
.źródło
Kilka drobnych pomysłów
abs(val1 - val2)
. Obecnie jest.a-<val1><val2>
.min
/max
dla wartości. Obecnie jest tohS,<val1><val2>
/eS,<val1><val2>
lub to samo z większą liczbą wartości. (hS<seq>
/eS<seq>
dla sekwencji jest wystarczająco krótki.)źródło
Nie jest to funkcja Pyth, ale mimo to ...
Zmodularyzuj kod Pyth
Wpływa to tylko na Pyth pod maską. Niektóre części implementacji Pyth są dość nieuporządkowane. Wiele zmiennych globalnych i innych złośliwych rzeczy.
Byłem naprawdę sfrustrowany kilka dni temu, kiedy próbowałem użyć kilku funkcji implementacji Pyth (takich jak wykonywanie ciągu poleceń Pyth) z innego skryptu Python.
Przydałoby się coś takiego:
Cóż, myślę, że to tylko pomoc dla Pyth5.
źródło
Unikalne elementy
Pyth obecnie nie ma krótkiego sposobu na uzyskanie unikalnych elementów sekwencji. Możesz sprawdzić, czy jest unikalny, ale nie możesz zdobyć przedmiotów, które są naprawdę unikalne. Obecnie najkrótsza droga to :
6 bajtów! Porównaj to do K, gdzie uzyskanie unikalnych elementów jest obsługa jedną bajt:
=x
.Może
.}
by tu pracował?źródło
.&
resp._&
pojawia się w wielu odpowiedziach. To jest bardzo użyteczne.{Q
?