2009-12-23 10 views
14

Chciałbym wiedzieć, czy istnieje aplikacja do obsługi arkuszy kalkulacyjnych, która wykorzystuje istniejący język programowania funkcjonalnego do definiowania funkcji.Arkusze kalkulacyjne z językiem programowania funkcjonalnego

Już słyszałem o Resolver One, który używa Pythona, ale bardziej interesuje mnie coś, co używa czysto funkcjonalnego języka, takiego jak Haskell.

Dzięki

+0

Zbyt egzotyczna ...dlaczego chcesz tego? Excel jest jak zła, ciężka, jednowątkowa biblioteka GUI z wieloma dziurami, które próbują zrobić własną rzecz. Nie sądzę, że Haskell jest na tyle praktyczny, że posiada znaczące biblioteki GUI ... –

+2

@ipthnc Skąd on mówił coś o Excelu? – phoebus

+1

Dobrze trafiłeś, który używa czystego języka. Istnieje tylko kilka istniejących i nieczyste języki funkcjonalne w rodzinach Lisp i ML są znacznie bardziej popularne. Python oczywiście nie jest językiem funkcjonalnym - jest imperatywnym językiem OO, który ma funkcje pierwszej klasy. – Chuck

Odpowiedz

12

Arkusze kalkulacyjne są dość popularną aplikacją wśród programistów funkcjonalnych. Przez lata były one powracającym tematem w gazetach. Niektóre z bardziej pamiętnych dokumentach obejmują

Można również przeczytać o an effort to make Excel more functional.

Za każdy z tych dokumentów przeczytałem gazetę lub wysłuchałem wykładu na podstawie dokumentów. Żadna z gazet nie jest bajeczna, ale wszystkie są dobre. Myślę, że ten z najbardziej interesującymi pomysłami jest autorstwa Sestoftu —, a jego wyniki eksperymentalne są dość niesamowite.

2
+0

Podejrzewam, że Javascript jest najbardziej funkcjonalnym językiem, jaki znajdziesz. Zauważ również, że istnieją kompilatory dla Haskella i OCamla na Javascript. – Chuck

+0

Haskell nie jest "najbardziej funkcjonalnym językiem"? – mipadi

+0

@mipadi: To nie tak, że Haskell nie działa; to, że nie spodziewam się znaleźć prawdziwej aplikacji do arkuszy kalkulacyjnych, która używa Haskella do definiowania funkcji. – Chuck

2

Jest Schemat w siatce (http://siag.nu/siag/), ale wygląda to trochę nieaktualne.

Istnieje również Haxcel (http://www.mrtc.mdh.se/projects/Haxcel/), który był projektem dyplomowym.

Jeśli chcesz wykonać funkcjonalne programowanie w arkuszu kalkulacyjnym, najlepszym praktycznym wyborem jest prawdopodobnie Resolver One, jak już zauważyłeś. (Powiedziałbym, że "funkcjonalne programowanie" w tym kontekście oznacza pierwszorzędne funkcje, które działają z innymi funkcjami arkusza kalkulacyjnego i samego arkusza - tzn. Można napisać funkcję, która zwraca funkcję, wywołaj ją i wynik będzie jeszcze w komórce inne komórki do wywołania, itp. Nie wiem, czy zrobi to OpenOffice i Google Docs.)

Mój kolega i ja pracowaliśmy nad małym projektem, aby to zrobić w Excelu, używając składni bardzo zbliżonej do Excela formuły. Opisałem go krótko w komentarzu na Roya Macleans w VBA blogu:

http://roymacleanvba.wordpress.com/2009/08/04/domain-specific-languages-%e2%80%93-part-2/#comment-130

To zmieniło trochę ponieważ ja pisał, ale jeśli chcesz, zadzwoń na naszą bardzo-minimal składnia jest „język”, to z pewnością „pure ". (I nadal planuję udostępnić go ogromnemu światu entuzjastów FP zaimplementowanych w VBA, ale sprawy wciąż nadchodzą ...)

Powiązane problemy