Güzel Erlang Kodu [kapalı]


15

Erlang hakkında oynadığım oyuncak projelerinden daha fazla şey öğrenmeye çalışıyorum. Bu amaçla, Programlama Erlang ve Armstrong'un Yazılım üzerindeki bazı arşivlerini okuyorum .

Ayrıca Erlang ile inşa edebileceğiniz şeyleri diğer dillerde orantısız olarak zorlaştıracak bazı örnek (tercihen üretim) kodlarını okumak istiyorum. Kenara (ı varsayalım) den yaws , ben dilin daha iyi anlamak ve / veya Çeşitli dil yapılarının deyimsel kullanımları görmek için okumaya verebilecek güzel Erlang kodun herhangi bir halka açık örneği vardır?

Özellikle ediyorum değil "yazdığınız nasıl burada "yapılan iş alır" fakat çizgisinde şüpheli uygulamalar veya örnekleri kullandığı kod arayan factorialErlang".

Aynı şekilde, herkes bu dili öğrenmek için iyi bir literatür önerebilir mi (belirtilen "Erlang Programlama" dışında)? Tercih etmek için, kendiniz öğrenmek için kullandığınız bir şey, ancak bunun için bazı topluluk standart kitapları varsa, bunları da atın.


Erlang, telefon trafiği için büyük ölçüde paralel anahtarlar tasarlamak ve oluşturmak için Ericcson tarafından yaratıldı. Ericsson tarafından dağıtılmış, hataya dayanıklı, yumuşak gerçek zamanlı, kesintisiz uygulamaları desteklemek üzere tasarlanmıştır. Mükemmel olduğu sorun alanı budur. Diğer tüm sorunlu alanlar için ... Kilometreniz değişebilir.
Robert Harvey

Yanıtlar:



-4

İşlevsel programlama etiketini eklediğinizden beri, Haskell'de bir Erlang derleyici veya yorumlayıcı yazmaya ne dersiniz? Erlang artık tıpkı son teknoloji değil. Erlang'ı bir veya iki gün içinde, diğer bazı diller (LISP, Prolog) gibi öğrenmenizi ve sonra unutmanızı öneririm; onlar sadece zorunlu OOP dillerini öğrenmenin bir adımıdır.

Derleyici uygulamaktan daha küçük görevler için, bkz. Project Euler .

[EDIT] Yorumu cevaplamak için:

Teknik açıdan: Erlang çok çekirdekli işlemcilerin olmadığı eski günlerde iyiydi. Ama şimdi - var olduğum derleyiciler / tercümanlar göz önüne alındığında - artık olması gerektiği gibi ölçeklenmiyor. Haskell'de yazılmış bir tercüman ölçeklenir, Haskell için derlenir, daha hızlı hale gelir, ancak anında kod değiştirme özelliğini kaldıracaktır.

Programcıların görüşüne göre: Haskell tüm uygulanabilir görevler için en iyi seçim değildir, ancak atm, muhtemelen daha gelişmiş diller çok deneyseldir ve uygulanabilir olmayan görevlerin genellikle gömülü sistemlerle (mikrodenetleyiciler ve GPU'lar gibi) ilgisi vardır veya C ve Assembler hala en iyi seçimdir.

Erlang ile yapabileceğiniz diğer dillerden daha iyi bir şey nedir?


4
Öğrenmek için bir iddiada bulunmadım çünkü en son teknolojiydi; Sadece ilginç göründüğünü düşünüyorum ve onunla inşa edebileceğiniz, diğer dillerle kolayca yapamayacağınız şeyler olabilir. Cevabınız "Haskell tüm uygulanabilir görevler için daha iyi bir seçimdir" ise, bana neden özel olarak (sadece belirsiz bir şekilde iddia etmek yerine) söylemeye ve Erlang yerine Haskell için ilk soruyu cevaplamaya ne dersiniz?
Inaimathi

1
Bu sorunun o kadar da kötü olduğunu bilmiyorum , ancak orijinal sorunun etrafında eteğin var. Comanad'ın bahsettiği anlamda güzel bir Haskell görmek istiyorsanız , bir şema ayrıştırıcısı yazarak en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours Bu , haskell, parsec ayrıştırma kütüphanesi ve şemasına öğreten bir öğretici . Ayrıştırıcı birleştiriciler, işlevsel dillerde oynanacak en güzel şeylerden biri olduğunu düşünüyorum. Onlar da biraz pratik; ayrıştırıcıları nasıl yazacağınızı öğrendikten sonra, belirli sorunları çözmek için kendi dillerinizi tasarlayabilirsiniz.
CodexArcanum

1
"Erlang ile yapabileceğiniz diğer dillerden daha iyi bir şey nedir?" Bilmiyorum; bu yüzden öğrenmeye çalışıyorum. Bağırsaklarım, asıl yapısı süreç olan bir dilin (CL'deki gibi kapatmanın aksine, Şemadaki gibi lambda veya python'daki sözlükte) sunacak ilginç bir şey olacağını söylüyor. Haskell de işlevseldir ve benzer desen eşleştirme yapılarına sahiptir, ancak eşzamanlılığa amansız bir odaklanma yoktur. Aslında, Haskell'deki ana yapı, çok farklı hayvanlar olduklarını düşündüren tip gibi görünüyor.
Inaimathi

2
@CodexArcanum - AFAIK, Erlang ve OTP, Mozilla Kamu Lisansının bir türevi altında mevcuttur ve Debian depolarından bira gibi serbesttir. "Sistem tescilli" demekle ne demek istediniz?
Inaimathi

1
@comonad - "Haskell tüm uygulanabilir görevler için daha iyi bir seçimdir" ile kastettiğim "Erlang ile kabul edilebilir bir şekilde tamamlayabildiğim her görev için Haskell bunu daha iyi yapabilir" idi. Tüm programlama işlerini tek bir dille yapabileceğinizi ya da tüm projelerim için yalnızca bir dil kullanmak istediğimi ima etmek istememiştim. Haskell'in doğrudan üstün olduğunu düşündüğünüz anlamına gelen "Haskell'i kullanırken neden Erlang kullanıyorsunuz?" Diye soruyordunuz. Bu iddiayı açıklamanızı ve belki de desteklemenizi istedim.
Inaimathi
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.