Pada intinya, spreadsheet adalah bahasa fungsional dengan pengetikan dinamis dan setiap fungsi atau nilai dapat direferensikan sebagai sel dalam matriks.
Alih-alih hal-hal seperti (defn some-name ...)
itu some-name
bagian ditempatkan dalam sel itu sendiri.
Jika Anda pergi ke ide bahasa fungsional yang diperbarui secara dinamis (seperti lighttable untuk clojure), Anda akan melihat banyak fungsi yang sama dengan spreadsheet. Bind nilai ke nama, tulis fungsi yang menggunakan nilai itu, ubah nilainya dan output fungsi segera berubah. Ini sama dengan melakukan sesuatu seperti menulis =A1 + B2
di lokasi C3
di excel.
Dengan demikian, programmer fungsional sering suka menulis spreadsheet sebagai program mainan ... dan subjek makalah penelitian juga. (Ya, saya minta maaf, mereka semua berada di belakang paywall ACM.org)
Pemrograman fungsional spreadsheet
Komunitas pemrograman fungsional telah menunjukkan minat pada spreadsheet, tetapi yang mengejutkan tampaknya tidak ada yang mempertimbangkan membuat spreadsheet standar, seperti Excel, bekerja dengan bahasa pemrograman fungsional standar, seperti Haskell. Dalam tulisan ini, kami menunjukkan satu cara bahwa ini bisa dilakukan. Harapan kami adalah bahwa dengan melakukan itu, kami dapat meminta pemrogram spreadsheet untuk mencoba pemrograman fungsional.
Bentuk / 3: Bahasa visual orde pertama untuk menjelajahi batas-batas paradigma spreadsheet
Meskipun pencela pemrograman fungsional kadang-kadang mengklaim bahwa pemrograman fungsional terlalu sulit atau kontra-intuitif bagi kebanyakan programmer untuk dipahami dan digunakan, bukti sebaliknya dapat ditemukan dengan melihat popularitas spreadsheet. Paradigma spreadsheet, bagian pertama dari paradigma pemrograman fungsional, telah diterima secara luas di antara programmer dan pengguna akhir. Namun, ada banyak batasan dengan sebagian besar sistem spreadsheet. Dalam makalah ini, kami membahas fitur bahasa yang menghilangkan beberapa keterbatasan ini tanpa menyimpang dari model evaluasi deklaratif tingkat pertama.
Menerapkan spreadsheet fungsi
Sejumlah besar pengembangan pengguna akhir dilakukan dengan spreadsheet. Metafora spreadsheet menarik karena visual dan mengakomodasi eksperimen interaktif, tetapi seperti yang diamati oleh Peyton Jones, Blackwell dan Burnett, metafora spreadsheet bahkan tidak mengakui abstraksi yang paling mendasar: mengubah ekspresi menjadi fungsi bernama. Oleh karena itu mereka mengusulkan cara untuk mendefinisikan fungsi dalam hal lembar kerja dengan sel input dan output yang ditunjuk; kita akan menyebutnya lembar fungsi.
Awal Spreadsheet di Wikipedia memberikan beberapa petunjuk bagaimana menerapkannya:
Spreadsheet adalah program aplikasi komputer interaktif untuk organisasi dan analisis data dalam bentuk tabel. Spreadsheet dikembangkan sebagai simulasi terkomputerisasi dari lembar kerja akuntansi kertas. Program ini beroperasi pada data yang direpresentasikan sebagai sel-sel array, diatur dalam baris dan kolom. Setiap sel array adalah elemen model-view-controller yang dapat berisi data numerik atau teks, atau hasil rumus yang secara otomatis menghitung dan menampilkan nilai berdasarkan konten sel lain.
Membangun ini dari Garis Besar paradigma Model-View-Controller seperti yang diungkapkan dalam perpustakaan Java . Penulis kemudian menyebutkan applet (sedikit tanggal, itu ditulis dalam '93 -'96) dan menyebutkan halaman webnya yang menuju ke http://csis.pace.edu/~bergin/Java/applets.htm (ya , applet) untuk kode spreadsheet yang sesuai http://csis.pace.edu/~bergin/Java/Spreadsheet.java
Saya akan tunjukkan bahwa keseluruhan spreadsheet, tidak sebesar di applet 570 baris ini termasuk dokumentasi.
Yang mengatakan, tergantung pada bahasanya, Anda mungkin bisa melakukan semuanya hanya dengan pointer fungsi dalam array yang jarang.