O usłudze
PrzetłumaczoneRozwijam programy w BQN — nowoczesnym członku rodziny APL, gdzie zamiast uciążliwych pętli używasz krótkiej notacji tablicowej i prawdziwie funkcji pierwszej klasy. Jeśli twoje zadanie związane z danymi wydaje się cięższe niż powinno, zazwyczaj wyrażam je w kilku linijkach, które czytają się niemal jak samo sformułowanie problemu. Moja praca dzieli się na trzy kierunki. Po pierwsze — transformacje danych: przekształcanie, grupowanie, łączenie i czyszczenie struktur tabelarycznych lub zagnieżdżonych, gdzie rank-polimorficzne prymitywy BQN zastępują strony imperatywnego kodu klejącego. Po drugie — procedury numeryczne i algorytmiczne: okna przesuwne, redukcje prefiksowe, warianty sortowania, kombinatoryka, małe symulacje i jądra statystyczne, napisane zwięźle, ale czytelnie. Po trzecie — prototypowanie algorytmów: gdy musisz przetestować pomysł, zanim cały zespół się nim zajmie, szkicuję go w BQN, aby kształt rozwiązania pozostał widoczny i łatwy do zmiany. Zależy mi na notacji, do której kolega może wrócić za sześć miesięcy, więc komentuję intencje, podaję przykłady i pakuję wszystko z krótkim README oraz zestawem testów obejmujących przypadki brzegowe. Wyniki zazwyczaj obejmują same tory i funkcje, zestaw asercji, przykładowe dane wejściowe i wyjściowe oraz uwagi dotyczące złożoności. Spędziłem wiele lat myśląc w tablicach — najpierw w starych dialektach APL, teraz głównie w BQN — i z radością łączę to podejście z małymi czasami wykonania lub wbudowanymi interpreterami. Opisz transformację, której potrzebujesz, i kształt swoich danych, a ja zwrócę kod, który jest mały, wystarczająco szybki do zadania i szczery co do swoich założeń.