Jakie masz wskazówki dotyczące gry w golfa w Applescript? Szukam pomysłów, które można by zastosować do problemów z golfem w kodzie, które są przynajmniej nieco specyficzne dla Applescript (np. „Usuń komentarze” nie jest odpowiedzią).
13
Odpowiedzi:
of
Operator jest używany, aby uzyskać właściwości z obiektu:Ale w wielu przypadkach możesz użyć
's
skrótu do zapisania 1 znaku:źródło
Edytor Applescript to poręczne małe IDE, które wyróżnia składnię i upiększa Twój kod. Jednak w przypadku gry w golfa przynosi efekt przeciwny do zamierzonego, ponieważ dodaje wcięcia i zbędne słowa kluczowe, np. Po
end
wyrażeniach. Na przykład:staje się następujący po wklejeniu do edytora Applescript i skompilowaniu / uruchomieniu:
Oczywiście pierwszy fragment jest lepszy do gry w golfa.
źródło
end
jest dość specyficzne dla Applescript.end
należy do której instrukcji początku bloku, gdy masz wiele zagnieżdżonych blokówtell
bloki są powszechne w Applescript:Jednak, aby zaoszczędzić miejsce, poniższe są równoważne, gdy wnętrze
tell
bloku to tylko jedna linia:źródło
tell app "TextEdit" to activate
.Niektóre słowa mają krótsze synonimy. Na przykład
application
można zapisać jakoapp
* istring
można zapisać jakotext
.Ponadto,
every <noun>
mogą być zapisywane jako po prostu mnogiej, tak jak wcharacters of "hello world"
(lub"foo"'s characters
).* Chociaż kompilator edytora skryptów zmieni go z powrotem.
źródło
Oferta wymagana do działania
Dla każdej operacji, która wymaga wyceny, aby coś zrobić, tj
Możesz skrócić do
Powtórzenie
W pętlach powtarzalnych można całkowicie usunąć słowo „razy”.
przeciw
<= i> =
Za każdym razem te podmioty są nazywane, można zastąpić je
≤
i≥
odpowiednio. Chociaż nie może zmniejszyć liczbę bajtów (chyba specjalny bajt konwencje liczenia są realizowane, co sugeruję), to ma zmniejszyć liczbę znaków.Łapanie ze STDIN
Możesz pobrać ze STDIN za pomocą następujących postaci:
Wychodzę szybko
Jeśli musisz szybko wyjść z kodu (z dowolnego powodu, tj. Zapobiegając nadmiernemu
if
s) ...źródło
Applescript pozwala wstawić dodatkowe słowa kluczowe, aby poprawić czytelność:
Ale
the
tutaj jest całkowicie zbędny i można go pominąć w przypadku zapisywania 4 znaków:źródło
log"Hello World"'s words
ponieważ 1) nie potrzebujesz odstępu między wyrażeniem a cytowanym przedmiotem oraz 2), ponieważ's
można go użyć zamiastof
.'s
jest rozwiązany w tej odpowiedzi codegolf.stackexchange.com/a/37643/11259 . Warto o tym wiedziećlog"
.Skrócenie wspornika
Podobnie jak w poście o cytatach, uświadomiłem sobie później, że możesz także skrócić takie rzeczy:
do
Dla ciebie też rozdzieli nawiasy. W tym przykładzie zapisuję 5 bajtów.
źródło
Wobec...
W przypadku pytań wymagających rozróżniania wielkości liter rzeczywiste rozpatrywanie spraw może być trudne.
DO TERAZ:
Właściwie nie znałem tego słowa kluczowego, dopóki go naprawdę nie potrzebowałem. Korzystając z innych wskazówek na tej stronie ze wskazówkami, możemy zmniejszyć to do:
O ile mi wiadomo, wymaga pełnego oświadczenia. (Próbowałem już wielu rzeczy.) Więcej informacji na tej stronie .
źródło
W kilku wyjątkowych przypadkach „nawiasy podwójne” lub „podwójne szewrony” mogą być krótsze niż angielska nazwa polecenia, parametru lub stałej.
Forma zakodowana w postaci szewronu zmniejszyłaby AppleScript, aby usunąć schowek z 20 do 16 znaków:
Upuszczałby 2 znaki podczas pobierania tekstu z okna dialogowego (jak to się dzieje w metronomie i dniu Pi ):
(Możesz preferować unikanie okna dialogowego i używanie argumentów wiersza poleceń osascript (1) , jeśli masz przynajmniej Mac OS X 10.4.)
W przypadku klawiatury amerykańskiej «to Option- \, a» to Option-shift- \. Polecenie
«event abcdefgh»
ma 16 znaków. Parametr lub stała«class abcd»
ma 12 znaków.Forma kodowana szewronem jest prawie zawsze za długa do gry w golfa. Oto przykład bez nawiasów podwójnych:
I to samo z nimi:
Zmiana
_open for access
(16) na«event rdwropen»
(16) była neutralna. Zmianawrite permission_
(17) nagiven«class perm»:
(18) kosztuje 1 postać. Inne podwójne wsporniki kątowe kosztują więcej.Aby używać nawiasów podwójnych, musisz znać magiczny 4-literowy lub 8-literowy kod. Znalazłem kilka kodów, zapisując plik skryptu z edytora skryptów, a następnie otwierając go w edytorze szesnastkowym. Uruchomiłem
emacs
terminal i korzystałemM-x hexl-find-file
. Znalazłem i zredagowałem niektóre kody, takie jakJonspClp
doJanspClp
ittxt
doatxt
. Następnie zapisałem plik i otworzyłem go ponownie w edytorze skryptów.«event JanspClp»
i«class atxt»
pojawił się w skrypcie.Dokument zatytułowany Terminologia AppleScript i Dokumentacja kodów zdarzeń Apple zawiera listę niektórych kodów. Znalazłem jego kopię na https://applescriptlibrary.wordpress.com/
Script Editor przetłumaczy nawiasy z podwójnym kątem na angielski przed zapisaniem skryptu. Aby zachować szacunek dla chevronów, musisz napisać skrypt w innym edytorze tekstu, takim jak TextEdit. Zapisz skrypt jako zwykły plik tekstowy w kodowaniu Roman Mac OS (lub MacRoman). Mac OS X woli, aby nazwać plik sufiksem .applescript.
Jeśli policzysz bajty, MacRoman ma 1 bajt na znak, więc każdy «lub» liczy się jako 1 bajt.
źródło