7

Uczyłem się języków czynnika i J, aby eksperymentować z programowaniem bez punktu. Podstawowa mechanika języków wydaje się być jasna, ale uzyskanie odpowiedniego podejścia do projektowania algorytmów jest wyzwaniem.Fiddling z bez-punktowym kodem?

Szczególnym źródłem nieporozumień jest dla mnie sposób ustrukturyzowania kodu tak, aby łatwo było eksperymentować z różnymi parametrami. Rozumiem przez to, że Mathematica i Matlab są tak dobrzy; konfigurujesz algorytm, a następnie manipulujesz zmiennymi i obserwujesz, co się dzieje.

Jak to zrobić bez jawnych zmiennych? Może myślę o tym wszystko źle. Jak mam się do tego podejść w programowaniu bez punktów?

Odpowiedz

9

Oto trzy ważne porady, które znalazłem bardzo pomocna w kontaktach z concatenative paradygmatu (stosowanej do języka programowania czynnikiem w moim przypadku):

  • Factor kod niemiłosiernie. Napisz bardzo małe funkcje: jeśli istnieje więcej niż 3-4 parametry stosu, być może możesz podzielić je na mniejsze części.
  • Zainwestuj w swój czas w naukę kombinatorów danych (bi, tri, cleave, spread, ...). Pozwalają wyrażać wspólne wzorce przepływu danych, jednocześnie eliminując konieczność skomplikowanego tasowania stosów.
  • Naucz się budować notowania z innych ofert. Używaj technik curry (curry, with, ...) do budowania prostych cytatów z parametrów stosu, a gdy rzeczy stają się zbyt skomplikowane, używaj cytatów Frieda ("fry"). Pozwalają one na łatwe budowanie złożonych cytatów z wzorców bez tasowania stosów.

I jak zawsze przeczytaj i "przejdź" do istniejącego kodu. W Factor dość łatwo jest zbadać środowisko uruchomieniowe i zobaczyć, jak działa.

Dla konkretnego źródła nieporozumień, jeśli masz dużo parametrów wejściowych w swoim algorytmie, najważniejszą rzeczą do zrobienia jest zbadanie, w jaki sposób zostaną użyte. Żniwa dla wzorców przepływu danych. Musisz naprawdę POMYŚLI o najlepszym sposobie "zaplanowania" operacji na najmniejszym zestawie powiązanych parametrów.

Jest to dość trudne doświadczenie, ale jest również bardzo satysfakcjonujące, gdy się uda. Czujemy się jak ludzki kompilator po tym ..

Powodzenia!