Özünde, elektronik tablo, dinamik yazmalı işlevsel bir dildir ve her işlev veya değer, matristeki bir hücre olarak gösterilebilir.
Yerine gibi şeylerin parçası bir hücrede kendisi yerleştirilir.(defn some-name ...)
some-name
Dinamik olarak güncellenen bir fonksiyonel dil ide'sine (clojure için lighttable gibi) giderseniz, bir elektronik tablo ile aynı işlevselliğin çoğunu göreceksiniz. Bir adı bir değere bağlayın, bu değeri kullanan bir işlev yazın, değeri değiştirin ve işlev çıktısı hemen değişir. Bu, excel in =A1 + B2
yerine yazmak gibi bir şey yapmakla aynı şeydir C3
.
Bu nedenle, işlevsel programcılar genellikle elektronik tabloları oyuncak programlar olarak yazmayı severler ... ve de araştırma makalelerinin konusu. (Evet, üzgünüm, hepsi bir ACM.org ödeme duvarı arkasında)
Elektronik tablo işlevsel programlama
İşlevsel programlama topluluğu elektronik tablolara biraz ilgi gösterdi, ancak şaşırtıcı bir şekilde hiç kimse Excel gibi standart bir elektronik tablo hazırlamayı düşünmemiş gibi görünüyor, Haskell gibi standart bir işlevsel programlama dili ile çalışıyor. Bu yazıda, bunun yapılabilecek bir yolunu gösteriyoruz. Umudumuz, böyle yaparak, elektronik tablo programcılarına işlevsel programlamayı denemek için yardımcı olabiliriz.
Formlar / 3: Elektronik tablo paradigmasının sınırlarını keşfetmek için birinci dereceden bir görsel dil
Her ne kadar işlevsel programlamanın uyarıcıları, çoğu zaman programcıların anlaması ve kullanması için işlevsel programlamanın çok zor ya da sezgisel olduğunu iddia etse de, elektronik tabloların popülaritesine bakarak bunun tersine kanıtlar bulunabilir. İşlevsel programlama paradigmasının birinci dereceden bir alt kümesi olan elektronik tablo paradigması, hem programcılar hem de son kullanıcılar arasında geniş kabul görmüştür. Yine de çoğu elektronik tablo sistemiyle ilgili birçok sınırlama vardır. Bu yazıda, birinci dereceden, bildirimsel değerlendirme modelinden sapmadan, bu sınırlamaların çoğunu ortadan kaldıran dil özelliklerini tartışıyoruz.
İşlev elektronik tablolarını uygulama
E-tablolarla büyük miktarda son kullanıcı geliştirme işlemi yapılır. Elektronik tablo metaforu çekicidir, çünkü görseldir ve etkileşimli deneyi barındırır, ancak Peyton Jones, Blackwell ve Burnett tarafından gözlemlendiği gibi, elektronik tablo metaforu en temel soyutlamayı bile kabul etmez: bir ifadeyi adlandırılmış bir işleve çevirmek. Bu nedenle, belirtilen giriş ve çıkış hücrelerine sahip bir çalışma sayfası olarak bir işlevi tanımlamanın bir yolunu önerdiler; ona bir işlev sayfası diyeceğiz.
Vikipedi’de Vikipedi’nin başlangıcı, nasıl uygulanacağı konusunda bazı ipuçları verir:
Bir elektronik tablo, verilerin tablo şeklinde düzenlenmesi ve analiz edilmesi için kullanılan etkileşimli bir bilgisayar uygulama programıdır. Elektronik tablolar, kağıt muhasebe çalışma sayfalarının bilgisayarlı simülasyonları olarak geliştirildi. Program, bir dizinin hücreleri olarak temsil edilen, satır ve sütunlarda düzenlenmiş veriler üzerinde çalışır. Dizinin her hücresi, sayısal veya metin verilerini içerebilen model görünüm denetleyici bir öğe veya diğer hücrelerin içeriğine göre bir değeri otomatik olarak hesaplayan ve görüntüleyen formüllerin sonucudur.
Bu Bina Java kütüphaneleri ifadesini bulan Model-View-Controller paradigmanın Anahat . Yazar (biraz da '93 -'96 yazılmış tarihli) söz uygulamaları devam ediyor ve gider kendi web sayfasını bahseder http://csis.pace.edu/~bergin/Java/applets.htm evet ( , applets) ilgili elektronik tablo kodu için http://csis.pace.edu/~bergin/Java/Spreadsheet.java
E-tablonun tamamının dokümantasyon dahil olmak üzere bu uygulama 570 satırında o kadar büyük olmadığını belirteceğim.
Bununla birlikte, dile bağlı olarak, muhtemelen seyrek bir dizideki sadece fonksiyon işaretçileriyle yapabileceğinizi söyledi.