OS X için en iyi Şema veya LISP uygulaması nedir?


87

Bazı kayıp Lisp geliştirme becerilerini kurtarmak için kullanabileceğim bir Scheme veya hatta LISP sürümü arıyorum. Bazı web yetenekleri güzel olurdu ama gerekli değil.

Plt ve MIT şemasına baktım ve ikisi de oldukça iyi görünse de, Plt daha zengin özelliklere sahip görünüyor. Lisp uygulamalarına da baktım ama hepsi oldukça pahalı görünüyor.

Ücretsiz / ucuz uygulamaları tercih ediyorum, çünkü bu gerçekten ara sıra hobi programlaması olabilir. Ne tür tavsiyeleriniz olur?


7
PLT Şemasının adı Racket olarak değiştirdiğine dikkat edin.
soegaard


2
Neden bu soru kapatılmadı ve buna benzer hemen hemen tüm diğerleri kapatıldı?
Erik Kaplun

Yanıtlar:


71

Racket ile giderdim. SBCL kadar hızlı olmayabilir, ancak mükemmel kitaplıklara ve belgelere sahip olmanın yanı sıra, Şema programlarını hemen geliştirip çalıştırmanızı sağlamak için tasarlanmış entegre bir ortama sahiptir. Racket'in IDE'si DrRacket'ten gerçekten hoşlandığım şey, yapmanız gerekmeyen şey - Emacs öğrenmek zorunda değilsiniz, SLIME öğrenmek zorunda değilsiniz, üçüncü avlanma konusunda endişelenmenize gerek yok- parti kitaplıkları, çünkü Racket için tasarlanmış hemen hemen tüm kitaplıklar paketlerde bulunabilir . Sonuç olarak, öğrenme eğrisini gerçekten azaltır ve elinizdeki asıl göreve odaklanmanıza olanak tanır: harika kod yazmak.

Ayrıca, Racket destekli web siteleri yapmak istiyorsanız (şu anda araştırdığım) bir web sunucusuyla birlikte gelir .


1
PLT'yi birkaç hafta önce az çok rastgele seçtim ve şu ana kadar seçimimden çok memnunum. Dediğiniz gibi, çok sayıda kitaplık ve belge, bazı yararlı araçlar.
Slartibartfast

Teşekkürler, um, kimse. Hızdan çok araçlara ve belgelere odaklandım, bu yüzden PLT ile gidiyorum.
Mark Brittingham

1
Tabi ki. DrScheme, bazı artıları olan (kullanımı basit ve belgelendirilmiş) ama aynı zamanda bazı dezavantajları olan eğitim göz önünde bulundurularak oluşturulmuştur; HtDP'den ( htdp.org ) geçmiyorsanız , en iyisi, öğretim dillerini görmezden gelmek ve her şey için Modülü kullanmaktır.
Kyle Cronin

Artık Racket olarak adlandırılmanın yanı sıra, artık çoğu kullanım durumu için Planet'e göre tercih edilen yeni bir paket sistemi ve paket kataloğu var.
Jack

22

Bununla epey deneyler yaptım.

Clozure Common Lisp (née Open MCL) açık ara en hızlısıdır; Intel Mac Mini'mdeki bir sonraki rakibimden yüzde 25-30 daha hızlı.

MIT Scheme , Mac'te oldukça iyi çalışıyor. Sanırım sonunda kendim derledim, ancak o sitede ikili dosyalar var. PLT Şeması da güzel ve muhtemelen Mac dünyasına biraz daha iyi entegre edilmiş. (PLT Şeması artık Racket olarak biliniyor , ancak değişiklikten sonra denemedim.)


2
hemen hemen her şeyi denedim; genellikle bunlar yoğun liste manipülasyonu ve loopmakronun yoğun kullanımıdır .
Charlie Martin

1
CCL'nin 32 bit Intel üzerinde çalışmadığını not etmek isteyebilirsiniz, bu yüzden Mac Mini'm bunun için biraz eski.
David Thornley

16

Clojure, SBCL ve Clozure CL hayranıyım. Hepsi harika, ancak tek yapmak istediğiniz Lisping pirzolalarınızı yenilemekse, onlar da aşırıdır. Hepsi saçma miktarda bilgi avlama, posta listesi arama, paket yükleme, gizlice gezinme vb. Gerektirir.

Dr Scheme sadece yükler ve çalışır. SICP'nin ilk 3 bölümünü dört buçuk yıl önce Dr Scheme kullanarak bitirdim. Kendi içinde bir Şema değerlendiricisini tanımlamaktan daha derin bir şey yoktu. Aklınızı başınıza aldığınızda, endüstriyel güçteki kardeşler için çok daha fazla sabrınız olacak.


3
Aslında Ubuntu-SBCL-SLIME-stumpwm kurulumum için başka bir şeye ihtiyacım yoktu. Yeni başlayanlar için tek ihtiyacınız olan Practical Common Lisp ve CLHS'dir ve bu size uzun bir yol katar.
Svante

15

Şema için DrRacket (dahil müthiş Racket ).

Common Lisp için Hazır Lisp harika. SBCL, Aquamacs ve Slime ile kutudan çıkan tek bir dmg.

Web sitesinden:

Hazır Lisp, Aquamacs, SBCL ve SLIME dahil olmak üzere özellikle Mac OS X için birçok popüler Common Lisp paketinin bir araya getirilmesidir. İndirdikten sonra, çift tıklayabileceğiniz tek bir uygulama paketine sahip olacaksınız - ve kendinizi tamamen yapılandırılmış bir Common Lisp REPL'de bulacaksınız.

Common Lisp'in güzelliğini minimum güçlükle denemek isteyen OS X kullanıcıları için idealdir. Ayrıca öğretmenler tarafından Mac öğrencilerine eve götürmeleri için ücretsiz, eksiksiz bir Common Lisp ortamı sağlamak için kullanılabilir. Gereksinimler

Ready Lisp'in mevcut sürümü 20090127'dir ve Mac OS X 10.5 (Leopard) gerektirir.

Aşağıdaki bileşen yazılım sürümlerini içerir:

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

"Lisp" i nasıl tanımladığınıza bağlı olarak, Clojure faturaya uyabilir. OS X üzerinde çalışır (JVM'nin çalıştığı her yerde çalışır). Web yetenekleri vardır ve ücretsizdir.

Aynı zamanda yeni, taze ve kullanımı eğlenceli olma avantajına da sahiptir. Hobi programlaması için ideal olabilir. Web uygulamaları veya GUI uygulamaları yazmak kolaydır (Java'nın Swing veya Qt kullanarak).



4

Scheme'i arıyorsanız , yeni yayınlanan JazzScheme'ye göz atabilirsiniz .


4

Yeni gelenlere Racket'i öneriyorum, çünkü Scheme'ye yeni başlayanlar için en güzel IDE'lerden birini sağlıyor (daha doğrusu, Scheme'yi kullanan veya daha iyisi, HtDP'de yollarını açan programlamaya yeni başlayanlar).

http://racket-lang.org/

Küçük bir Scheme sistemini kendileri değiştirmek veya kaynak kodunu okumak için daha çok ilgilenen insanlar için başka bir seçenek Larceny Scheme'dir, çünkü JIT derleyicisi Twobit'in kendisi tamamen Scheme'de uygulanmaktadır.

http://www.larcenists.org/


Güncelleme: Ek olarak, Chez Şeması yakın zamanda açık kaynaklı oldu:

https://github.com/cisco/ChezScheme

(Larceny kadar "küçük" olmayabilir, ancak çok agresif bir optimizasyon derleyicisine sahiptir.)


web sitesinde, yalnızca yerel bir derleyiciden, bir C'den derleyiciden ve bir CLR uygulamasından bahsediyor gibi görünüyorlar - JIT nerede?
Erik Kaplun

Doğal derleyici olan bir tam zamanında.
pnkfelix

(yani, onu yüklediğiniz her Şema ifadesini dinamik olarak x86 makine koduna derler. JIT burada "tam zamanında" içindir; Java ve JVM ile ilgisi yoktur, eğer bu JIT ile kastettiğimi düşündüm)
pnkfelix

Java ile bir ilgisi olduğunu düşünmedim; sadece ana sayfada "doğrudan yerel makine koduna derlenir" yazıyor ve JIT derleyen sanal makineler / yorumlayıcılar genellikle böyle tanımlanmıyor.
Erik Kaplun

1
Sorunuzu cevaplamak için, şu anda olduğu gibi Larceny'den gerçekten bağımsız bir ikili dosya alamazsınız. Şema kaynağınızı yükleyebilir ve ardından yığınını (derlenmiş kodla) bir yığın görüntüsüne serileştirebilirsiniz, ancak o zaman bile yığın dosyasını ve çalışma zamanı ikili dosyasını ayrı dosyalar olarak yeniden dağıtmanız gerekir. İkisini tek bir ikili görüntüde birleştirmeyi kolaylaştırmaya çalışmayı düşündüm, ancak hiçbir zaman dalmadım.
pnkfelix


2

Sadece hobi programcılığı yapıyorsanız, LispWorks'ün oldukça güçlü ve sofistike olan ücretsiz, kişisel bir sürümü vardır. En büyük sorun, birkaç saatlik çalışma süresi sınırıdır. Yani, içine uzun süre çalışan herhangi bir sunucu yazmayacaksınız, ancak bu onun kullanışlı bir araç olmadığı anlamına gelmez.

CLISP çoğu şeyde çalışır ve aslında oldukça iyidir, sadece iş parçacığı yapmaz. (Gerçek bir sunucu yazmak istiyorsanız önemlidir, ancak PHP ve Perl'in bize gösterdiği gibi, Apache + [dili girin] çok uygun bir platformdur.)



2

Chicken'ın Scheme için iyi çalıştığını ve homebrew aracılığıyla temin edilebileceğini buldum .

brew install chicken

SICP'deki kodun çoğu küçük değişikliklerle çalışır.


1

Son zamanlarda kendime aynı soruyu soruyorum. OS X'de DrScheme'yi kullandığım için, herhangi bir platform için Scheme dağıtımı için ilk tercihim olurdu. Çok güzel IDE, hata ayıklama özellikleri ve iyi bir kitaplık / çerçeve seti (çok güzel bir GUI araç seti dahil 'sadece Mac'te bile çalışır' ;-))

Ancak, şimdi Common Lisp için benzer şekilde rahat bir ortam arıyorum. SBCL'ye karşı CCL (OpenMCL) geldi. SBCL popüler bir seçim gibi görünüyor, ancak OS X'te iş parçacığını desteklemediğini okudum. (Bu gerçekten bir sorun mu?). Clozure CL ise yerel iş parçacıkları, obcj köprüsü vb. İçin iyi bir desteğe sahiptir.

CCL'yi biraz tuhaf buluyorum ama bir süre buna bağlı kalacağım - Hala entegrasyon için mantıklı bir seçim gibi görünüyor.

Ortam olarak Emacs 23 (--with-ns kullanılarak kaynaktan oluşturuldu) ve Slime kullanıyorum ve bu benim için iyi çalışıyor. :-)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.