O usłudze
PrzetłumaczoneJestem programistą funkcyjno-logicznym i pracuję zawodowo w Curry, więc oferuję projektowanie i wdrażanie rozwiązań deklaratywnych, gdzie zwykły kod imperatywny zamienia się w zamieszanie. Curry łączy czyste funkcje w duchu Haskella z programowaniem logicznym: opisuję zadanie jako zbiór relacji, a zawężanie i obliczenia niedeterministyczne same przeszukują przestrzeń poszukiwań. To moje codzienne narzędzie. Przez lata napisałem rozwiązania ograniczeń, silniki łamigłówek i harmonogramów, analizatory składni oraz małe języki dziedzinowe, zawsze preferując czytelne równania nad ręczną optymalizację pętli. Typowy proces roboczy to: zgadzamy się na specyfikację, modeluję dziedzinę za pomocą typów algebraicznych i wzorców funkcji, dodaję zmienne wolne i niedeterministyczny wybór tam, gdzie potrzebne jest przeszukiwanie, a następnie enkapsuluję wynik, aby wywołujący kod otrzymał deterministyczne, testowalne odpowiedzi. Główne systemy to PAKCS i KiCS2; wiem, jak dostrzegać miejsca, w których przeszukiwanie eksploduje i dodawać ograniczenia z wyprzedzeniem, aby je ograniczyć. Wyniki obejmują skomentowany kod źródłowy, krótką notatkę na temat modelu deklaratywnego, zestaw testów oraz zaproszenie do przejścia przez projekt, aby Twój zespół mógł utrzymać kod. Pomagam również projektom akademickim: implementacje referencyjne dla artykułów, przykłady do nauczania, powtarzalne artefakty do oceny. Jeśli masz zadanie kombinatoryczne lub oparte na regułach i potrzebujesz jasnego rozwiązania, a nie czarnej skrzynki, Curry jest idealny, a ja chętnie to zbuduję z Tobą.