Kiedy dostanę moją kanapkę?

37

wprowadź opis zdjęcia tutaj

Biorąc pod uwagę jeden z następujących danych wejściowych:

Kurczak ze słodkiej cebuli Teriyaki
Pieczony kurczak w piekarniku
Pierś z indyka
Włoski BMT
Tuńczyk
Szynka Czarnego Lasu
Klopsik Marinara
wypisz liczbę od 1-7 (lub 0-6) reprezentującą dzień tygodnia, w którym otrzymasz ofertę, zaczynając od poniedziałku jako najniższej liczby. Dane wejściowe mogą być pisane małymi lub dużymi literami, jeśli jest to preferowane (tj. „Włoski bmt”). Internet nie jest dozwolony.

geokavel
źródło
8
Naprawdę nie widzę, jak ta złożoność Kołmogorowa. Tekst jest wejściem ... liczby są wyjściem.
geokavel
5
Czy w niedzielę mówi się także „Meatball Marinara” lub „Meatball Marina Ra”?
Erik the Outgolfer,
17
Jestem pewien, że ma być Marinara ale Keming na obrazie jest dość straszne ...
totallyhuman
6
Jeśli jest to przydatne dla każdego: liczba aplus liczba ena każdym wejściu wynosi odpowiednio [5,4,3,2,1,3,6].
geokavel

Odpowiedzi:

85

Python 2 , 38 30 28 bajtów

lambda S:`6793**164`[len(S)]

Wypróbuj online!

Niestety wciąż o jeden bajt dłużej niż najlepsza dotychczasowa odpowiedź w Pythonie 2; chociaż nie używa enklactpodejścia.

Teraz jeden bajt krótszy niż odpowiedź cri everytim !

Jak to działa?

Po dużej brutalnej sile znalazłem wyrażenie, którego wynikiem jest liczba z odpowiednimi cyframi.
Zauważyłem, że spojrzenie tylko na jedną konkretną cyfrę długości łańcucha wymaga 3 bajtów ( %10). Napisałem więc inny program w języku Python ( link Pastebin ), aby dalej szukać liczb, które bezpośrednio mapują długości ciągów wejściowych na dzień tygodnia.

Magiczna liczba wygląda następująco: 6793**164 = 28714733692312345620167113260575862840674216760386883406587492336415023761043044176257567032312859371641211117824224067391750766520256112063756278010050204239810862527958109285342869876264808102743173594017101607983288521836082497514383184553444755034407847810524083812459571382103831904835921560285915349760536969265992879312869538914200854305957428078269094250817029486005437991820466986793657301214564264748923199288698278615871481529585816783654841131577178922192383679718074693535597651237893794976519274268917335387876260270630339777501802739852278932279775510324916969726203688466311848240746465178859847331248655567344801(liczba z imponującymi 629 cyframi dziesiętnymi)

I jak widać, liczba zapewnia niezbędne mapowanie od [28, 20, 13, 11, 4, 16, 17] do [0, 1, 2, 3, 4, 5, 6] (ciągi Pythona to 0- indeksowane):

2871 4 733692 3 1 2 34 5 6 20 1 6711326 0 5758628406742167603868834... [4]^ [11]^ [13]^ [16]^ ^[17] ^[20] ^[28]

Mój program znaleźć również inne wyrażenia, które poddają numery z wymaganą nieruchomości, choć ma więcej bajtów do reprezentowania (29 zamiast 28): 19439**540, 34052**726, 39311**604, 44873**182, 67930**164i 78579**469. (Są to wszystkie wyrażenia znalezione przez połączony program; jego wykonanie zajęło kilka godzin).

Alternatywna funkcja wymagająca 28 bajtów: lambda S:`7954<<850`[len(S)]
Alternatywna funkcja wymagająca 29 bajtów: lambda S:`9699<<2291`[len(S)]
Alternatywna funkcja wymagająca 30 bajtów: lambda S:`853<<4390`[len(S)+9]
Alternatywna funkcja wymagająca 31 bajtów:lambda S:`1052<<3330`[len(S)+8]

Jak to działa? Jak wygenerowałem ten numer? (Odpowiedź 30 bajtów)

30 bajt odpowiedź była lambda S:`3879**41`[len(S)%10].

Patrząc na długości łańcucha wejściowego [28, 20, 13, 11, 4, 16, 17]zauważyłem, że wszystkie ostatnie cyfry w bazie dziesięciu różnią się, w wyniku czego powstaje lista [8, 0, 3, 1, 4, 6, 7]. Więc tylko potrzebne mapowanie z tej listy do wykazu wszystkich siedmiu dni tygodnia [0, 1, 2, 3, 4, 5, 6].

Moje pierwsze podejście wykorzystało po prostu ciąg znaków do wykonania odwzorowania: lambda S:"13*24*560"[len(S)%10]chociaż ciąg wymagał jedenastu bajtów ( "13*24*560").
Napisałem więc program w języku Python ( łącze Pastebin ), aby przetestować wyrażenia arytmetyczne, których wynikiem jest liczba całkowita z dopasowanymi cyframi, mając nadzieję na dalsze działanie programu. Do tej pory wymyśliłem `3879**41`(tylko dziesięć bajtów, jedyne i przez to najmniejsze wyrażenie, które mój program znajduje).

Oczywiście istnieje wiele różnych możliwych wyrażeń, które można wypróbować; Po prostu miałem szczęście, że był taki w formie a**bz dość małym wynikiem, który pasował do moich potrzeb.

Wystarczy dla każdego, ciekawy, 3879**41 = 1372495608710279938309112732193682350992788476725725221643007306215781514348937145528919415861895033279220952836384201346579163035594383625990271079 = 1.372... * 10**147.

Kolejną ważną funkcję, którą znalazłem podczas wyszukiwania alternatywnych wyrażeń, która niestety wymaga 32 bajtów: lambda S:`7**416`[len(S)%10+290]

Jonathan Frech
źródło
1
Jak wygenerowałeś ten numer? : o
całkowicie ludzki,
10
@icrieverytim Brute force.
Jonathan Frech,
-9114**28jest mniejszą liczbą całkowitą *, która również działa (* w wartościach bezwzględnych nie tylko dlatego, że jest ujemna - 111 cyfr zamiast 629). Nie oszczędza jednak na bajtach.
Jonathan Allan,
4
Od czasu do czasu sprawdzam pytania PCG w HNQ i zwykle jestem rozczarowany, że języki gry w golfa to trzy najważniejsze miejsca. Dzisiaj nie zawiodłem się. Dziękuję Ci!
Sidney,
4
@icrieverytim ಠ_ಠ to właśnie ten sam numer, ale połowę ze współczynnikiem przesunięcia jednego więcej ಠ_ಠ: P
HyperNeutrino
49

Python 2 , 29 bajtów

lambda s:'enklact'.find(s[3])

Wypróbuj online!

Wyjaśnienie

Magiczny ciąg, enklactzostał znaleziony, szukając pierwszej kolumny z unikalnymi literami.

Pierwsza kolumna idzie, SOTITBMco nie jest przydatne, ponieważ zawiera duplikaty. Drugi i trzeci również nie działają, ponieważ są wvutulei eeranaaodpowiednio. Czwarta kolumna działa jednak, ponieważ ma wszystkie unikalne litery.

lambda s:'enklact'.find(s[3])

lambda s:                      # declare a function that takes a single paramater s
                  .find(    )  # find the index of the first instance of...
                        s[3]   # the fourth (0-indexing) character of s...
         'enklact'             # in the magic string
całkowicie ludzki
źródło
18

Python , 26 bajtów

lambda S:1923136>>len(S)&7

Wypróbuj online!

Z długiem wdzięczności (za moją drugą prostą próbę golfa) na odpowiedź Jonathana Frecha - nie pomyślałbym, żebym użył długości sznurka zamiast litery wyróżniającej!

Ten kod wywodzi się z mojego doświadczenia z sekwencjami De Bruijna i programowaniem szachów.

W szachach często pracujesz z kilkoma 64-bitowymi liczbami całkowitymi, przy czym każdy bit wskazuje, że coś jest zgodne z prawdą lub fałszem w odniesieniu do odpowiedniego kwadratu na szachownicy, na przykład „jest tu biały kawałek” lub „ten kwadrat zawiera pionek”.

Dlatego warto szybko i tanio przekonwertować 2**nna n. W C i C ++ najszybszym sposobem na to jest pomnożenie przez 64-bitową sekwencję De Bruijn - równoważną przesunięciu o nbity - a następnie przesunięcie w prawo 58 (aby umieścić ostatnie sześć bitów na końcu - upewnij się, że ' ponownie używasz bez znaku int lub dostaniesz 1s połowę czasu) i poszukaj tej liczby 0..63 w tabeli, która daje ci odpowiedni, nktóry jest w tym samym zakresie, ale rzadko ten sam numer.

To jest trochę powiązane. Jednak zamiast zmieniać z 2**nna n, chcemy zmienić z nna inną 3-bitową liczbę. Tak więc ukrywamy nasze 3-bitowe liczby w magicznej 31-bitowej liczbie (28-bitowe przesunięcie wymaga bitów 28-30, z numeracją rozpoczynającą się od 0.)

Wygenerowałem potrzebną liczbę, po prostu widząc, jakie wartości musiały spaść gdzie (próbując zarówno 0..6, jak i 1..7 jako zestawy wyjściowe). Na szczęście zdarzają się nakładające się wartości (14, 16 i 17)! A ponieważ pierwszy tri-bit jest, 000a następny jest 001, nie potrzebujemy ostatnich 7 bitów, co powoduje mniej cyfr -> mniej bajtów źródła.

Wymagana liczba to 000xxxx001110101011xxxx100xxxx, gdzie x może wynosić 1 lub 0 i nie wpływa to na wynik dla tych konkretnych subwooferów - ustawiłem je na 0 tylko w celu zminimalizowania liczby, ale zmiana któregokolwiek z ostatnich 8 xs nie powinna mieć wpływu długość kodu źródłowego. Ustawienie wszystkich wartości x na 0 i pominięcie początku daje 1923136 w postaci dziesiętnej (lub 1D5840 w postaci szesnastkowej, ale wtedy potrzebujesz prefiksu 0x - szkoda!). & 7 na końcu tylko maskuje ostatnie 3 bity, możesz również użyj% 8, ale wtedy potrzebujesz nawiasów z powodu reguł pierwszeństwa operatora Pythona.

tl; dr: 1923136 koduje każdą z 3-bitowych kombinacji od 0 do 6 w dokładnie odpowiednich miejscach, w których te nazwy kanapek zdarzają się na miejscu, a następnie należy wziąć trzy ostatnie bity po prawidłowej zmianie.

Michael Boger
źródło
Całkiem podobne do mojego podejścia z maską bitową, ale jeszcze lepsze.
Bruno Costa,
12

Galaretka , 10 bajtów

O co chodzi z tym całym „enklaktycznym” biznesem?

⁽ṃXị“Ð$¥»i

Monadyczny link zawierający listę znaków i zwracający poniedziałek = 1 dzień tygodnia.

Wypróbuj online! lub zobacz zestaw testowy

W jaki sposób?

⁽ṃXị“Ð$¥»i - Link: list of characters, sandwichName  e.g. "Tuna"
⁽ṃX        - base 250 literal                             -7761
   ị       - index into sandwichName (1-indexed & modular) 'n'
    “Ð$¥»  - dictionary word                               "retinal"
         i - index of                                           5
Jonathan Allan
źródło
Jak znalazłeś -7761/retinalkombinację?
Emigna,
3
Napisałem pętlę, która przebiegała przez tworzenie „słów” i sprawdzanie, czy istnieją w słowniku. „Retinal” był jedynym między -32249 a 32250 (zakres ⁽...)
Jonathan Allan,
... niewielki błąd - zakres ⁽..jest rzeczywiście [-31349,32250] - [- 99999] (istnieją także inne liczby mogą reprezentować jeden z trzech lub mniej bajtów jak 7!!lub ȷ76)
Jonathan Allan
9

C (gcc) , 72 71 56 46 41 39 bajtów

f(char*s){s=index(s="enklact",s[3])-s;}

Wypróbuj online!

cleblanc
źródło
i;char x[]="enklact";jest krótszy niż i,x[]={101,110,107,108,97,99,116};.
Jonathan Frech,
Już miał to opublikować: char*x="enklact"jest jeszcze krótszy: Wypróbuj online!
scottinet,
Możesz także usunąć i=0.
Jonathan Frech,
Jeszcze krótsza wersja index: Wypróbuj online!
scottinet,
@scottinet Nice! Nigdy wcześniej nie korzystałem z index (). Dzięki
cleblanc,
7

MATL , 16 15 bajtów

O5OHlO7KI6vjYm)

Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .

Wyjaśnienie

O5OHlO7KI6 % Push numbers 0, 5, 0, 2, 1, 0, 7, 4, 3, 6
v          % Concatenate all numbers into a column vector
j          % Push input as a string
Ym         % Mean (of ASCII codes)
)          % Index into the column vector (modular, 1-based, with implicit rounding)
           % Implicit display
Luis Mendo
źródło
5

Myślałem, że opublikuję kilka innych alternatyw

JavaScript 38 bajtów

a=s=>(271474896&7<<s.Length)>>s.Length

Objaśnienie: Skały z maską bitową?

Javascript 27 bajtów

s=>"240350671"[s.length%10]
Bruno Costa
źródło
druga alternatywa to 29 bajtów zapomnianycha=
Bruno Costa
Dlaczego a=potrzebna jest część? Spójrz na odpowiedź Kudłaty .
geokavel
1
@BrunoCosta Na tej stronie nie wymagamy od Ciebie podawania swoich funkcji. Anonimowe działają, więc nie potrzebujesz a=.
Rɪᴋᴇʀ
1
@BrunoCosta to super, to naprawdę zależy od Ciebie. Możesz także nie policzyć go w liczbie bajtów nagłówka i dołączyć go do fragmentu, aby ułatwić testowanie.
Rɪᴋᴇʀ
1
@MichaelBoger Bezskutecznie nie sądzę, aby tak było, ponieważ minimalna ilość kodu, aby ta praca działała, uważam, że jest to coś w stylua=s=>{b=s.Length;return(271474896&7<<b)>>b}
Bruno Costa
4

Galaretka , 11 bajtów

4ị“-ƭɼoṚ0»i

Wypróbuj online!

Wyjaśnienie:

4ị“-ƭɼoṚ0»i
4ị          4th element of z
  “-ƭɼoṚ0»i First index in "enklactate"
Erik the Outgolfer
źródło
2
@ Mr.Xcoder, chyba że użyję enklactatezamiast enklactmojego ciągu, w którym to przypadku sprowadza go do 11;)
Erik the Outgolfer
5
Och, na litość boską , dlaczego enklactate w słowniku Jelly?
całkowicieludzki
3
@icrieverytim To nie enkjest , to ciąg znaków i lactatesłowo. EDYCJA: właśnie potwierdzona, enklactatenie ma jej w słowniku.
Erik the Outgolfer
1
@icrieverytim Myślę, że to tylko mleczan .
Pan Xcoder,
2
Aw maaan, chciałem znaleźć sposób na wyśmiewanie się ze słownika Jelly ... Może następnym razem. : P
totalnie ludzki,
3

Japt , 12 bajtów

Indeksowane 0, przyjmuje dane pisane małymi literami.

`kÇXsm`bUg#

Sprawdź to


Wyjaśnienie

Domniemane wprowadzanie małych liter U

`kÇXsm`

Skompresowany ciąg kotinsm.

bUg#

Zdobądź pierwszy indeks ( b) znaku w indeksie ( g) 26 ( #) w U. (Tak, owijanie indeksu!)

Wynik niejawny wyniku liczb całkowitych.


Alternatywny

To samo co powyżej (i wszyscy inni!), Po prostu używając zamiast tego znaków z indeksu 3, umożliwiając wprowadzanie wielkości liter.

`klact`bUg3

Sprawdź to

Kudłaty
źródło
Gdzie enposzedł? : P
totalnie ludzki,
1
@icrieverytim: to skompresowany ciąg; enjest skompresowany do niedrukowalnego.
Kudłaty
7
Myślę, że widzę bUgw twoim kodzie.
shenles,
3

05AB1E , 11 bajtów

Zaoszczędzono 1 bajt dzięki Erikowi Outgolfer i 1 bajt dzięki Magic Octopus Urn.

.•ΛΓ2º•I3èk

Wypróbuj online!

Pan Xcoder
źródło
"enklact"->’enkl†¼’
Erik the Outgolfer
’enkl†¼’->.•ΛΓ2º•
Magic Octopus Urn
@MagicOctopusUrn O dzięki
Mr. Xcoder
@ Mr.Xcoder tak to dostałem.
Magic Octopus Urn
@MagicOctopusUrn Będę przechowywać w archiwum, dzięki: p
Pan Xcoder
3

JavaScript (ES6), 25 bajtów

0-indeksowane.

s=>"enklact".search(s[3])

Sprawdź to

o.innerText=(f=
s=>"enklact".search(s[3])
)(i.value);oninput=_=>o.innerText=f(i.value)
<select id=i><option selected value="Sweet Onion Chicken Teriyaki">Sweet Onion Chicken Teriyaki</option><option value="Oven Roasted Chicken">Oven Roasted Chicken</option><option value="Turkey Breast">Turkey Breast</option><option value="Italian BMT">Italian BMT</option><option value="Tuna">Tuna</option><option value="Black Forest Ham">Black Forest Ham</option><option value="Meatball Marinara">Meatball Marinara</option></select><pre id=o>

Kudłaty
źródło
1
To jest 25 bajtów !
geokavel
Dzięki, @geokavel. Nie wiem skąd mam te dodatkowe 3 bajty; nawet liczenie f=sprawi, że będzie to tylko 27.
Shaggy
proste i skuteczne rozwiązanie. +1 :)
Brian H.,
@Shaggy Może twój trzeci dodatkowy bajt był końcową nową linią.
Michael Boger,
3

GolfScript , 12 bajtów

{+}*93&(5?7%

Wypróbuj online!

Odwzorowuje dane wejściowe (poprzez sumę ich punktów kodowych) 0na 6.

Wyjaśnienie

Znaleziono za pomocą narzędzia Brute Force do fragmentu kodu GolfScript, które napisałem jakiś czas temu ...

{+}*  # Sum all code points.
93&   # ... AND 93.
(     # Decrement.
5?    # ... raised to the fifth power.
7%    # ... modulo 7.

Oto jak przekształca to każde wejście do pożądanego wyniku:

                                 {+}*   93&     (            5?   7%
Sweet Onion Chicken Teriyaki     2658    64    63     992436543    0
Oven Roasted Chicken             1887    93    92    6590815232    1
Turkey Breast                    1285     5     4          1024    2
Italian BMT                       965    69    68    1453933568    3
Tuna                              408    24    23       6436343    4
Black Forest Ham                 1446     4     3           243    5
Meatball Marinara                1645    77    76    2535525376    6
Martin Ender
źródło
2

Excel, 28 bajtów

Za pomocą enklactmetody:

=FIND(MID(A1,4,1),"enklact")
Wernisch
źródło
Możesz upuścić 2 bajty, konwertując to na Arkusze Google i upuszczając")
Taylor Scott
2

Perl 6 , 22 bajtów

tr/enklact/^6/.comb[3]

Wypróbuj online!

Massa
źródło
perl 2017.07 akceptuje tr/enklact/^6/.comb[3]22 bajty, ale tio.run najwyraźniej jeszcze go nie ma.
Massa
(tio.run działa perl6 v2017.6)
Massa
1
Tak długo, jak istnieje interpreter, który może obsługiwać 22-bajtową wersję, jest on poprawny.
Shaggy
2

Łuska , 10 bajtów

%7^5←n93ṁc

Wypróbuj online!

Kolejny port mojej odpowiedzi w GolfScript . Jestem pewien, że w końcu znajdę język, który może sumować punkty kodu dla jednego bajtu ...

Łuska (aktualizacja po prowokacji), 9 bajtów

%7^5←n93Σ

Wypróbuj online!

Teraz Σ robi bezpośrednio suma punktów kodowych. Ponieważ zostało to dodane na prośbę po tym, jak odpowiedziałem na to wyzwanie, nie zamierzam jednak używać go jako mojego głównego wyniku.

Martin Ender
źródło
1

Pyth , 13 bajtów

x"enklact"@w3

Sprawdź wszystkie przypadki testowe.

Alternatywny:

x."atÖÅû"@w3

3 można zastąpić dowolną z następujących wartości: [3, 4, 11, 13, 21, 24, 25, 26]

Pan Xcoder
źródło
1

Perl 5 , 43 + 1 ( -p) = 44 bajty

for$i(S,O,TUR,I,TUN,B,M){$"++;$_=$"if/^$i/}

Wypróbuj online!

Wymaga, aby pierwsze trzy znaki wprowadzania były pisane wielkimi literami.

Xcali
źródło
Musi to być cała wielka litera, cała mała litera lub zwykła.
geokavel
Nazwij to więc wielkimi literami. Wszystko poza pierwszymi trzema postaciami jest ignorowane.
Xcali,
1

Java 8, 26 bajtów

Podziękowania dla @icrieverytim

Pobiera dane jako char []

s->"enklact".indexOf(s[3])
Roberto Graham
źródło
Możesz to zrobić, s->"enklact".indexOf(s[3])jeśli określisz, że bierzesz dane wejściowe jako tablicę znaków.
shooqie,
Czy to jest ok? Mam kilka odpowiedzi, które można tak skrócić
Roberto Graham
1

Haskell , 36 bajtów

-9 bajtów dzięki H.PWiz.

f s=length$fst$span(/=s!!3)"enklact"

Wypróbuj online!

Alternatywne rozwiązanie, 45 bajtów

Używa indexOffunkcji w Data.Listas elemIndex.

import Data.List
(`elemIndex`"enklact").(!!3)

Wypróbuj online!

całkowicie ludzki
źródło
1
37 bajtów
H.PWiz
@ H.PWiz Och, zgrabne nadużycie break. Dzięki!
całkowicie ludzki,
1
36
H.PWiz
@ H.PWiz Haha, jak mi tego brakowało. XD
totalnie ludzki,
1

C ++, 119 118 77 76 73 bajtów

-41 bajtów dzięki Peter Cordes
-1 bajtów dzięki Zacharý
-3 bajtów dzięki Michael Boger

Przy indeksie 3 ciąg znaków każda kanapka jest inna

#include<string>
int s(char*p){return std::string("enklact").find(p[3]);}
std::initializer_list<char*> t{
    "Sweet Onion Chicken Teriyaki",
    "Oven Roasted Chicken",
    "Turkey Breast",
    "Italian BMT",
    "Tuna",
    "Black Forest Ham",
    "Meatball Marinara"
};

for (auto& a : t) {
    std::cout << s(a);
}

Gra w golfa std::string, to było oczywiste ... o czym myślałem ...

HatsuPointerKun
źródło
1
std::finddosłownie ciąg znaków (a może a std::string) wydaje się oczywistą drogą. Zasadniczo taki sam pomysł, indexlub strchr, że odpowiedź C używanego w strukturze danych, gdzie 0-5 jest niejawne z pozycji.
Peter Cordes
Możesz usunąć nowy wiersz pomiędzy wierszami 2 i 3.
Zacharý
Nie potrzebujesz zmiennej do przechowywania enklact. std::string("enklact").find(p[3])działa w porządku. Sprowadza to 3 znaki.
Michael Boger,
Możesz przekazać literały łańcuchowe do swojej funkcji (g ++ wywołuje tylko ostrzeżenie), więc memcpy nie jest potrzebne.
Michael Boger,
0

C # (.NET Core) , 289 bajtów

using System;class c{delegate int s(string r);static void Main(){s y=x=>{if(x[0]==83)return 1;if(x[0]==79)return 2;if (x[0]==84&x[2]=='r')return 3;if(x[0]==73)return 4;if(x[0]==84)return 5;if(x[0] ==66)return 6;if(x[0]==77)return 7;return 0;};Console.Write(y.Invoke(Console.ReadLine()));}}

Uruchom online

snorepion
źródło
0

Golfscript, 13 bajtów

Wypróbuj online!

'enklact'\3=?

Bierze 4. znak (który dla każdego będzie niepowtarzalny) i przegląda go w ciągu „ enklact”.

Alternatywnie:

'nklact'\3=?)

Wykorzystuje to fakt, że ?funkcja Golfscript zwraca -1, jeśli szukany element nie zostanie znaleziony (co w poniedziałek nie będzie). Gdyby to było dozwolone, rozwiązanie można by zmniejszyć o 1 bajt.

Josiah Winslow
źródło
0

K (oK) , 13 bajtów

Rozwiązanie:

"enklact"?*3_

Wypróbuj online!

Przykłady:

> "enklact"?*3_"Black Forest Ham"
5
> "enklact"?*3_"Turkey Breast"
2

Wyjaśnienie:

Zinterpretowany od prawej do lewej, wyciągnij 4. element z wejścia i zwróć położenie indeksu zero na liście „enklact”:

"enklact"?*3_  / the solution
           3_  / 3 drop, 3_"Turkey Breast" => "key Breast" 
          *    / first, *"key Breast" => "k"
         ?     / lookup right in left
"enklact"      / list to lookup element in
streetster
źródło