За своєю суттю електронна таблиця - це функціональна мова з динамічним набором тексту, і кожну функцію чи значення можна посилати як клітинку в матриці.
Замість того , щоб такі речі , як (defn some-name ...)
в some-name
частині поміщається в самій клітині.
Якщо ви перейдете до динамічного оновлення функціональної мови ідеї (наприклад, lighttable для clojure), ви побачите майже таку ж функціональність, як електронна таблиця. Прив’яжіть значення до імені, запишіть функцію, яка використовує це значення, змініть значення і результат функції негайно зміниться. Це те саме, що робити щось на кшталт написання =A1 + B2
у розташуванні C3
в excel.
Таким чином, функціональні програмісти часто люблять писати електронні таблиці як іграшкові програми ... і тему дослідницьких робіт. (Так, вибачте, всі вони стоять за платою ACM.org)
Функціональне програмування електронних таблиць
Співтовариство функціонального програмування виявило певний інтерес до електронних таблиць, але на диво, але, здається, ніхто не розглядав можливість створення стандартної електронної таблиці, наприклад, Excel, працювати зі стандартною функціональною мовою програмування, наприклад Haskell. У цій роботі ми показуємо один із способів, що це можна зробити. Ми сподіваємось, що, зробивши це, ми можемо отримати програмістів електронних таблиць, щоб спробувати функціональне програмування.
Форми / 3: візуальна мова першого порядку для вивчення меж парадигми електронних таблиць
Хоча зловмисники функціонального програмування іноді стверджують, що функціональне програмування є занадто важким або неінтуїтивним для більшості програмістів для розуміння та використання, докази протилежного можна знайти, вивчивши популярність електронних таблиць. Парадигма електронних таблиць - підмножина парадигми функціонального програмування першого порядку знайшла широке визнання як серед програмістів, так і серед кінцевих користувачів. Тим не менш, у більшості систем електронних таблиць існує багато обмежень. У цій роботі ми обговорюємо мовні особливості, які усувають декілька цих обмежень, не відхиляючись від декларативної моделі оцінки першого порядку.
Реалізація електронних таблиць функцій
Велика кількість розробок кінцевих користувачів здійснюється за допомогою електронних таблиць. Метафора електронних таблиць приваблива тим, що є візуальною та вміщує інтерактивне експериментування, але, як зауважують Пейтон Джонс, Блеквелл та Бернетт, метафора електронної таблиці не допускає навіть найосновнішої абстракції: перетворення виразу на названу функцію. Отже, вони запропонували спосіб визначення функції з точки зору робочого аркуша з позначеними клітинками вводу та виводу; ми будемо називати це функціональним аркушем.
Початок роботи електронної таблиці у Вікіпедії дає деякі підказки щодо її реалізації:
Електронна таблиця - це інтерактивна програма для комп'ютерних програм для організації та аналізу даних у табличній формі. Електронні таблиці розроблені як комп’ютеризоване моделювання аркушів паперового обліку. Програма працює на даних, представлених у вигляді комірок масиву, впорядкованих у рядки та стовпці. Кожна комірка масиву є елементом контролера моделі-перегляду, який може містити чисельні чи текстові дані, або результати формул, які автоматично обчислюють та відображають значення на основі вмісту інших комірок.
Спираючись на це на основі структури парадигми Model-View-Controller, як це виражено в бібліотеках Java . Автор продовжує згадувати аплети (трохи датовані, це було написано у '93 -96 рр.) І згадує свою веб-сторінку, яка переходить до http://csis.pace.edu/~bergin/Java/applets.htm (так , аплети) для відповідного коду електронних таблиць http://csis.pace.edu/~bergin/Java/Spreadsheet.java
Я зазначу, що сукупність електронної таблиці не настільки велика в цьому аплеті 570 рядків, включаючи документацію.
Це говорило, що залежно від мови, ви, ймовірно, могли зробити це все за допомогою лише покажчиків функцій у розрізненому масиві.