Zasadniczo arkusz kalkulacyjny jest językiem funkcjonalnym z dynamicznym pisaniem, a każdą funkcję lub wartość można określić jako komórkę w macierzy.
Zamiast rzeczy jak (defn some-name ...)
w some-name
części umieszcza się w samej komórce.
Jeśli przejdziesz do dynamicznie aktualizowanego ideowego języka funkcjonalnego (takiego jak lighttable for clojure), zobaczysz wiele takich samych funkcji jak arkusz kalkulacyjny. Powiąż wartość z nazwą, napisz funkcję, która korzysta z tej wartości, zmień wartość, a wynik funkcji zmieni się natychmiast. To jest tak samo jak robienie czegoś takiego jak pisanie =A1 + B2
w lokalizacji C3
excel.
W związku z tym programiści funkcjonalni często lubią pisać arkusze kalkulacyjne jako programy zabawkowe ... i także temat prac naukowych. (Tak, przepraszam, wszystkie stoją za paywallem ACM.org)
Programowanie funkcjonalne arkusza kalkulacyjnego
Społeczność programistów funkcjonalnych wykazała pewne zainteresowanie arkuszami kalkulacyjnymi, ale nieoczekiwanie nikt nie pomyślał o stworzeniu standardowego arkusza kalkulacyjnego, takiego jak Excel, do pracy ze standardowym funkcjonalnym językiem programowania, takim jak Haskell. W tym artykule pokazujemy jeden ze sposobów, w jaki można to zrobić. Mamy nadzieję, że robiąc to, możemy poprosić programistów arkuszy kalkulacyjnych, aby spróbowali programowania funkcjonalnego.
Forms / 3: Język wizualny pierwszego rzędu do eksploracji granic paradygmatu arkusza kalkulacyjnego
Chociaż krytycy programowania funkcjonalnego czasami twierdzą, że programowanie funkcjonalne jest zbyt trudne lub sprzeczne z intuicją, aby większość programistów mogła je zrozumieć i używać, dowody przeciwne można znaleźć, patrząc na popularność arkuszy kalkulacyjnych. Paradygmat arkusza kalkulacyjnego, podzbiór pierwszego rzędu funkcjonalnego paradygmatu programowania, zyskał szeroką akceptację zarówno wśród programistów, jak i użytkowników końcowych. Istnieje jednak wiele ograniczeń w większości systemów arkuszy kalkulacyjnych. W tym artykule omawiamy funkcje językowe, które eliminują kilka z tych ograniczeń bez odchodzenia od deklaratywnego modelu oceny pierwszego rzędu.
Wdrażanie arkuszy kalkulacyjnych funkcji
Arkusze kalkulacyjne wymagają dużej liczby prac rozwojowych użytkowników końcowych. Metafora arkusza kalkulacyjnego jest atrakcyjna, ponieważ jest wizualna i umożliwia interaktywne eksperymenty, ale jak zaobserwowali Peyton Jones, Blackwell i Burnett, metafora arkusza kalkulacyjnego nie przyjmuje nawet najbardziej podstawowej abstrakcji: przekształcenia wyrażenia w nazwaną funkcję. Dlatego zaproponowali sposób zdefiniowania funkcji w kategoriach arkusza roboczego z wyznaczonymi komórkami wejściowymi i wyjściowymi; nazywamy to arkuszem funkcji.
Początek arkusza kalkulacyjnego w Wikipedii zawiera kilka wskazówek, jak go wdrożyć:
Arkusz kalkulacyjny to interaktywny program komputerowy do organizacji i analizy danych w formie tabelarycznej. Arkusze kalkulacyjne opracowane jako skomputeryzowane symulacje papierowych arkuszy kalkulacyjnych. Program działa na danych reprezentowanych jako komórki tablicy uporządkowane w wierszach i kolumnach. Każda komórka tablicy jest elementem kontrolującym widok modelu, który może zawierać dane liczbowe lub tekstowe albo wyniki formuł, które automatycznie obliczają i wyświetlają wartość na podstawie zawartości innych komórek.
Opierając się na tym z paradygmatu Zarys modelu Model-Widok-Kontroler wyrażonego w bibliotekach Java . Autor wspomina o apletach (nieco datowanych, napisano w latach 93–96) i wspomina o swojej stronie internetowej, która prowadzi pod adresem http://csis.pace.edu/~bergin/Java/applets.htm (tak , aplety) dla odpowiedniego kodu arkusza kalkulacyjnego http://csis.pace.edu/~bergin/Java/Spreadsheet.java
Zwrócę uwagę, że cały arkusz kalkulacyjny nie jest aż tak duży w tym aplecie 570 linii łącznie z dokumentacją.
To powiedziawszy, w zależności od języka, prawdopodobnie możesz to wszystko zrobić za pomocą wskaźników funkcji w rzadkiej tablicy.