2009-08-12 17 views
11

Kaynak kodlarını hazır hale getiren iyi tasarlanmış işlevsel (nesne yönelimli) web uygulamalarının örnekleri nelerdir? Şu anda Hacker Newssource çalışıyorum, ancak diğer önemli olmayan örneklerini görmek istiyorum, ideal olarak clojure.İyi tasarlanmış fonksiyonel web uygulamalarının kaynak kodu nedir?

MVC için, çok sayıda Rails ve PHP uygulaması, çerçevesi ve ders çalışacak çok şey var - fonksiyonel programlama için ne var?

+0

Ark ve Clojure ancak işlevsel dillerdir. HappS bir göz atın: http://happs.org/ – jrockway

+0

Belki "süreklilik tabanlı web uygulamaları" için arama bazı ilginç sonuçlar getirebilir. – fortran

+0

İlginç bir çerçeve ve makale - teşekkürler! Bu fikirlerin gerçek uygulamaları için herhangi bir bağlantınız var mı? Örneğin, Haskell'deki bir mağaza sistemi, süreklilik temelli bir CMS veya basit bir blog yazılımı mı?Bir yerlerde yaşayan kanıtlanmış çözümlerden öğrenmeyi seviyorum. – Lorenz

cevap

7

var:

Bu liste yeterlidir (smalltalk) tutmak Farklı özelliklere sahip fonksiyonel dillerden oluşan bir örnek vermekle meşgulsünüz:

  • Clojure: multi-paradigma ?, esnek? Tamamen işlevsel bir dil değildir ve işlevsel bir tarzda programlamanız tercih edilmesine rağmen, kesinlikle gerekli değildir. Java interopundan java tarzı OOP yazabilir ya da çoklu yöntemlerle ondan soyutlayabilirsiniz. Orada bir çok esneklik var, ancak ortak lisp biçiminde sadece "esnek" veya "çok değişkenli" olup olmadığını söylemek için biraz erken olsa da. Kısmen, eşzamanlılığı kolayca işleyen bir lisp olmak üzere tasarlandı, aslında çok fazla hedefe vuruyor, dolayısıyla esnek ya da çok değişkenli atama.
  • Şema: Clojure'dan daha işlevsel bir işlevsel dil olmaya yaklaştıkça, programlayıcıyı Clojure'dan daha işlevsel bir biçime zorlar.
  • Erlang: Güvenilir eşzamanlılık için geliştirilmiş fonksiyonel programlama. Erlyweb son derece eşzamanlı olarak tasarlanmış bir platform üzerine kurulmuştur.
  • Smalltalk: Son derece OO işlevsel programlama (kontrol yapıları bile nesne sistemindeki nesnelerdir ve sözdizimsel yapılar değildir).

Webapps'ın "her ne pahasına olursa olsun" işlevsel bir dilde nasıl görüneceğini görmek istiyorsanız, jrockway'in önerisi bakılacak olanıdır. Saf bir işlevsel dilde uygulanan gerçek dünya açık kaynak projeleri arıyorsanız

+0

PLT Scheme web sunucusuna giriş için, http://docs.plt-scheme.org/continue/ adresine bakınız. –

+0

PLT Scheme Web sunucusu ve Seaside'ın neden burada listelendiğini açıklar mısınız? Uygulamaları işlevsel programlamanın iyi örnekleri midir? –

+0

@Vijay, web sunucusu ve istemci arasındaki sürekliliği kullanarak kontrol etkileşimi. Bu, web programlamaya fonksiyonel yaklaşımın damgası olacaktır. Bunun bir açıklaması Yahoo! devam eden web sunucularına ilişkin patent: http://www.google.com/patents?id=WE8GAAAAEBAJ&printsec=abstract&zoom=4&source=gbs_overview_r&cad=0#v=onepage&q=&f=false bu patent, Paul Graham'ın yazdığı çalışmadan geldi. Yahoo olun 90'ların ortalarında Lisp'de mağazalar. Süreklilik temelli web sunucuları hakkında daha fazla bilgi için orijinal soruya da fortran'ın yorumunu kontrol edin. – Pinochle

2

Weblocks, Seaside'den ilham alan, kanıtlanmış, nesne yönelimli işlevsel bir çerçevedir. Bu Common Lisp yazılı

ve iki temel örnekler (weblocks-demo, basit-blog) burada bulunabilir: http://bitbucket.org/S11001001/weblocks-dev/src/tip/examples/

+0

işlevsel, yüksek performanslı bir çerçeve ancak işlevsel değil, yukarıdaki soruya bakın –