LISP halen günümüzde dünyada uygulanmakta mı / kullanılmakta mı, yoksa eski bir dil mi
Evet öyle, ama nereye bakacağını bilmek zorundasın. LISP kullanan insanlar bu konuda çok yüksek sesle bağırmaya eğilimli değil, ancak son 20 yıl boyunca çok etkili olan birkaç yüksek profilli girişimden bir kaç örnek var. Avrupa'daki küçük şirketler arasında da çok popülerdir.
En yaygın kullanılan lehçe nedir?
Bu geçerli bir soru, ancak cevaplaması kolay bir soru değil. Ayrıca cevaplanması özellikle yararlı olmayabilir: birçok uygulamanın özel bir odağı vardır; bu nedenle, aksi takdirde ne kadar yaygın olarak kullanıldığına bağlı kalmak yerine, kendi probleminize uyuyorsa en iyi şekilde seçilir. Bunun yerine, size seçenekleriniz hakkında biraz bilgi vereceğim ve kendiniz karar verebilirsiniz.
LISP bir dil ailesidir ve bu dillerin her birinin lehçeleri ve uygulamaları ailesi vardır. Geniş lehçeler iki kampa "LISP" ve "Şema" dır.
LISP'ler: Nispeten yakın zamana kadar Ortak LISP kraldı. Tüm farklı LISP'leri birleştirme girişimiydi ve kabahatsiz olmadan, LISP'nin "C ++" sıydı. Yani, BÜYÜK bir dildi . Her şeye sahipti. Son birkaç yılda, Clojure ortaya çıktı. Clojure, Java Sanal Makinesi üzerinde çalışan ve işlevsel bir programlama felsefesinde kendisini kökten çalışan bir LISP'dir. Geleneksel olarak, diğer LISP'ler kesinlikle çok paradigma olmuştur. Clojure ilginç çünkü hem LISP hem de JVM'nin hem en iyisi hem de en kötüsü. Orada Java tabanlı dillerin ayrıntı bir sürü hala ve onlar düğmeleri ve farklı şeyler için düğmeler çok var bu yüzden sözdizimi ile oldukça ücretsiz ve kolay oldum, ancak bazı var gerçektenVeri türleri etrafındaki ilginç fikirler, özellikle de fonksiyonel programlamadaki fikirleri uygulamak için edindikleri pratik yöntemlerden bazıları.
Şemalar: Şemalar, LISP'lerin katı bir alt kümesidir. Şema, Steele ve Sussman tarafından icat edildi ve erken yaşamda, MIT Computing 101 Dersi Kursunda kullanılmasıyla dikkat çekiciydi. Şema "Algoritmik Dil Şeması (RnRS) Revize ^ n Raporu" nda tanımlanmıştır. Evet: Orada matematik şakası var. Program, diğer LISP’lerin olmadığı şekilde standartlaştırılmış bir dildir. Bu, uygulamalar arasındaki taşınabilirliğe büyük ölçüde yardımcı olur, ancak gümüş bir kurşun değildir. Standardizasyon çabaları muhafazakar olma eğilimindeydi ve uygulamalardaki yenilikler, özellikle de modüller gibi şeyler etrafında farklı olma eğilimindeydi. Ayrıca, IETF'in RFC sürecine benzer bir dizi SRFI (Uygulama İçin Şema İstekleri) bulunmaktadır. İnsanlar küçük şeyleri gerektiği gibi standartlaştırmak için kullanıyorlar.
Şemalar, LISP'lerden farklıdır; bir tanesi özyinelemeyi verimli hale getirmeye yardımcı olan "kuyruk çağrısı optimizasyonu" olan, karşılaması gereken bir takım zor şartlara sahiptir. Bu nedenle, özyinelemeli programlama stilleri Şema'da LISP'den çok daha popülerdir. Şema, aynı zamanda kaba olmadan, LISP'in “C” si gibi. Yani, bu küçük bir dildir ve hepsini bir anda kafanızda tutabilmeniz gerekir.
Şu anda iki Şema ailesi vardır: 5. versiyona (R5RS) ve 6. versiyona (R6RS) dayananlar. R6RS'nin karmaşıklığı, öncekilerinden çılgınca daha büyüktü ve birçok R5RS uygulaması, R7RS'nin R6RS'den R5RS'ye daha benzer olacağını umarak bunu atlamayı seçti. R7RS standardizasyonu süreci halen devam etmekte ve hem R5RS uygulayıcılarının isteklerini hem de R6RS halkının isteklerini, ilk çalışma gruplarında küçük bir temel dili standartlaştırarak ve daha sonra daha büyük özellikleri standartlaştırmak için ikinci bir çalışma grubunu görevlendirmeye dahil etmeye çalışmaktadır. Bu, dilin hem küçük gömülü donanım hem de daha yetenekli makineler üzerinde etkili ve kullanışlı uygulamalara sahip olmasını sağlayacaktır.
Şimdi daha spesifik olacağım:
PicoLisp gerçekten, gerçekten harika bir LISP'dir. Bu küçücük! Yazar, kendisi için yazdı ve anladığım kadarıyla, 1980'lerden bu yana yaşamını sürdürüyor. Eğer onunla bir konuşmaya katılma fırsatı bulursanız, o zaman yapmalısınız: gerçekten ilginç ve eşyalarını gerçekten biliyor ve ana akım veya sıkıcı herhangi bir şeyin en küçük kokusunu bile alamayacaksınız.
Common Lisp uygulamalarına aşina değilim, bu yüzden onlar hakkında daha fazla yorum yapmayacağım.
Guile resmi GNU Şemasıdır.
Raket bir R6RS programıdır ancak son zamanlarda ağı genişletmiş görünüyor ve "dil oluşturma, tasarım ve uygulama için bir platform olarak hizmet etmeye" çalışıyor.
Tavuk pratik bir şema olmayı hedeflemektedir. R5RS'ye dayanır ve C'ye kadar derlenir. Bu, mevcut C kütüphanelerini kullanmayı kesinlikle önemsiz kıldığından, gerçekten, gerçekten, önemli bir avantaj olarak ortaya çıkıyor. Bu nedenle, Tavuk muhtemelen günlük betik dili olarak Perl, Python, Ruby, vb. Değiştirmek için en kullanışlı programdır. Sadece birkaç yıl boyunca tüm ihtiyaçları için kullanmış birkaç kişi var. Bir derleyici yanı sıra interaktif bir REPL var. Topluluk (hem posta listesinde hem de IRC'de) bilgili, cana yakın ve yardımsever.
Çok sayıda modül içeren bir uygulamaya bakın: bu, yaygın olarak kullanılabilir olduğunu ve eldeki göreve yardımcı olacak bir şeyin olabileceği anlamına gelir.
Derleyici içeren bir uygulama arayın veya en azından kesinlikle IDE veya REPL tabanlı olmayan bir şey arayın. Öğretim için tasarlanan uygulamaların birçoğunun genel amaçlı kodlama için kullanımı çok zordur.
Kullandığım şey olarak Tavuk'u tavsiye ederim. Kişisel projelerimde kullandım ve (ve şu anda kullanıyorum) profesyonelce kullandım.
Tamamen eskiyse bir şeye gereksiz çaba sarfetmek istemiyorum. Eğer profesyonel olarak "ölü" olsaydı, yine de öğrenirdim, ama sadece akademik bir bakış açısıyla ...
Şema profesyonelce ölmedi, ancak bu bağlamda kullanmak için bazı uzunluklara gitmeniz gerekebilir. Chicken gibi bir şey akademik bir arayıştan çok daha fazlasıdır ve şu anda kullandığınız yüksek seviyeli dillerin neredeyse tüm temellerini kolayca kapsayabilir.