Wskazówki do gry w golfa w Jolf


12

Jolf jest proceduralnym językiem golfowym stworzonym przez @ CᴏɴᴏʀO'Bʀɪᴇɴ.

Jakie masz wskazówki dotyczące gry w golfa w Jolf?

Proszę zamieścić jedną wskazówkę na odpowiedź.

Te wskazówki powinny być przynajmniej nieco specyficzne dla Jolfa, np. Usunięcie komentarzy jest odpowiedzią, ale niezbyt dobrą.


Witamy na stronie, proszę przeczytać jak zapytać stronę i wycieczek stronę aby uzyskać więcej informacji.
Rɪᴋᴇʀ

Odpowiedzi:


4

JavaScript wraca

Jeśli z jakiegoś dziwnego powodu Jolf nie jest wystarczająco golfisty lub po prostu nie może sobie poradzić, warto skorzystać z eval JavaScript. Może się to zdarzyć na dwa sposoby.

1. Zaprojektowany eval

Wszystko w środku $...$jest dosłownie przenoszone na transpozycję JS. Na przykład +3$~$5transpile do add(3, ~5). Odpowiednio +3:~5.

2. Tablica eval

Możesz używać tablic JS w Jolf! Przeważnie. To rodzaj błędu, ale go nie naprawię. Na przykład:

u[3*5,5/6,(3+4)/5]

Transpozycje do:

sum([2 * 3, 5 / 3, (3 + 4) / 5]);

1
Jeśli z jakiegoś dziwnego powodu Jolf jest wystarczająco golfowy (...?)
Erik the Outgolfer

@EriktheOutgolfer nie jest **
Conor O'Brien

7

Poznaj swoje automatyczne zmienne!

Jolf ma wiele sposobów na „automatyczne przypisywanie” zmiennych. Standardowym jest γ, który przyjmuje wartość następnego wyrażenia. Βto to samo, ale konwertuje następne wyrażenie na liczbę.

Ponadto ζ(zeta) jest zmienną inicjalizowaną na -1/12(zgadnij dlaczego) i można ją ponownie przypisać za pomocą Ζ(Zeta).

Załóżmy na przykład, że chcesz porównać I(ciąg wejściowy) z operacją nad samym sobą. Na razie zobaczmy, czy I + I = reverse(I + I). Zapisuje się to jako:

=+II_+II

Ale można to pograć w golfa do:

=γ+II_γ

Czy twoja zeta -1/12 ma związek z teorią strun? Znam sposób na zsumowanie każdej liczby naturalnej i uzyskanie -1/12
DeepDeadpool

1
@GheyPhistor Która teoria strun? Ale tak, to dlatego, że funkcja zeta w stosunku do liczb naturalnych wynosi -1/12.
Conor O'Brien,

6

Posługiwać się @

@to polecenie, które pobiera następny znak w kodzie źródłowym i zwraca punkt kodowy tego znaku. (Na przykład @Xzwraca 88.) Jest to często bardzo przydatne, ponieważ można wyrazić dowolną liczbę od 0 do 255 w dwóch bajtach.


„między 100 a 255”
Leaky Nun

@KennyLau W Jolfie 10jest tak naprawdę liczba, 1a liczba 0nie jest liczbą 10, więc jest bardziej jak 10-255.
spaghetto

Rozumiem, dziękuję ..
Leaky Nun

4

Przeczytaj źródło

W tej chwili istnieje wiele nieudokumentowanych rzeczy - mwśród nich tajemniczy moduł, który ma wiele wbudowanych funkcji. Jednak istnieją one w źródle i naprawdę nie jest trudno je odczytać, gdy się zorientujesz, więc przeczytaj źródło.


1
mYsterious mmoduł ATH.
Conor O'Brien,

1
module. (Pozostało jeszcze 6 ...)
Leaky Nun

2

Zwiększ arity funkcji

Każda funkcja ma swój cel. Na przykład, +ma arity z 2. Jeśli chcesz (powiedzmy) dodać 5 elementów, to mógłby użyć 5 + S ... albo zrobić +θ12345. Konkretnie:

  • θ zwiększa ariancję funkcji o 3.
  • zwiększa arity funkcji nadrzędnej o 3. (Tak *+~θ345678zwiększa arity o *3)
  • M zwiększa arianancję funkcji o 2.
  • ~M zwiększa arity funkcji rodzica o 2.
  • ; zwiększa arianancję funkcji o 1.
  • ~; zwiększa arity funkcji rodzica o 1.
  • η zmniejsza arianancję funkcji o 1.
  • zmniejsza arianancję funkcji rodzica o 1.
  • \xad ustawia arity funkcji nadrzędnej na kod znaków następnego znaku.

Co jest zaletą *+~θw ciągu *θ+?
user253751,

@immibis Nie ma w tym przypadku, to było tylko ilustracyjne. W Jolfie są pewne funkcje, które podczas parsowania przekazują dwie funkcje. Wtedy jedynym sposobem na uzyskanie dostępu do arity górnej funkcji jest użycie ~<char>.
Conor O'Brien

2

Skorzystaj z niejawnego wkładu

Jeśli funkcja nie ma wystarczającej liczby argumentów, przeszuka dane wejściowe dla pozostałej części argumentów. Na przykład:

+uz

Przełożyłby się na:

add(sum(unaryRange(x)), x)

Jest to równoważne z

+uzxx

1

Służy odo przechowywania wartości

Podobnie jak inne języki mogą przypisywać zmienne do łatwego / krótkiego odwoływania, Jolf ma o.

Na przykład oThxdrukuje wejście plus 1.

Jest to bezużyteczny przykład, ale gdy wyrażenie jest bardziej skomplikowane hx, może zaoszczędzić trochę poważnego bajtu.

Ponadto, v"var name"<val>pozwala na nazwy zmiennej multi-char i V"var name"pobiera zmienną z zakresu.

Dziękuję Conorowi za wyjaśnienie mi tego i udzielenie poprzedniego zdania.


Zauważ też, że v"var name"<val>pozwala na nazwę zmiennej o wielu znakach i V"var name"pobiera zmienną z zakresu.
Conor O'Brien,

@ CᴏɴᴏʀO'Bʀɪᴇɴ och, więc to właśnie robią. Dodawanie do postu.
Rɪᴋᴇʀ

2
o Dzięki za tę wskazówkę: P
Downgoat

@ EᴀsᴛᴇʀʟʏIʀᴋ To była gra słów o obyciu zmienną przypisania
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ o, yeah ....
Rɪᴋᴇʀ
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.