รหัส Erlang ที่สวยงาม [ปิด]


15

ฉันพยายามเรียนรู้เพิ่มเติมเกี่ยวกับ Erlang มากกว่าโครงการของเล่นที่ฉันเล่นด้วย ด้วยเหตุนี้ผมอ่านผ่านโปรแกรม Erlangและบางส่วนของข้อมูลที่เก็บจากอาร์มสตรองในซอฟท์แว

ฉันยังต้องการอ่านตัวอย่างโค้ด (ควรใช้งานจริง) ที่แสดงประเภทของสิ่งต่าง ๆ ที่คุณสามารถสร้างได้ด้วย Erlang ซึ่งอาจจะยากในภาษาอื่น ๆ นอกเหนือจาก (ฉันคิดว่า) Yawsมีตัวอย่างที่เปิดเผยต่อสาธารณชนของรหัส Erlang ที่สวยงามที่ฉันสามารถอ่านเพื่อทำความเข้าใจภาษาได้ดีขึ้นและ / หรือดูการใช้สำนวนสำหรับการสร้างภาษาต่างๆหรือไม่?

ฉันไม่ได้มองหารหัสที่ "ทำให้งานสำเร็จ" แต่ใช้วิธีปฏิบัติที่น่าสงสัยหรือตัวอย่างตามบรรทัด "นี่คือวิธีที่คุณเขียนfactorialใน Erlang"

ในหลอดเลือดดำเดียวกันทุกคนสามารถแนะนำวรรณคดีที่ดีสำหรับการเรียนรู้ภาษานี้ (นอกเหนือจาก "การเขียนโปรแกรม Erlang" ที่กล่าวถึง)? สำหรับการตั้งค่าสิ่งที่คุณเองเคยเรียนรู้ แต่ถ้ามีหนังสือมาตรฐานชุมชนบางเล่มให้โยนมันเข้าไปด้วย


Erlang ถูกสร้างขึ้นโดย Ericcson เพื่อออกแบบและสร้างสวิตช์แบบขนานขนาดใหญ่สำหรับการรับส่งข้อมูลโทรศัพท์ มันถูกออกแบบโดยอีริคสันเพื่อรองรับแอพพลิเคชั่นที่กระจายข้อผิดพลาดซอฟท์เรียลไทม์และไม่หยุดยั้ง นั่นคือโดเมนปัญหาที่มันยอดเยี่ยม สำหรับโดเมนปัญหาอื่น ๆ ทั้งหมด ... ระยะทางของคุณอาจแตกต่างกันไป
Robert Harvey

คำตอบ:


6

อีกหนึ่งการอ้างอิงที่ดีคือErlang และ OTP ในการใช้งานจริง

เกี่ยวกับตัวอย่างโค้ด: เป็นการยากที่จะหาวิธีปฏิบัติที่ดีที่สุดสำหรับ Erlang แต่ฉันอยากจะแนะนำให้คุณลองใช้เว็บไซต์เหล่านี้:

ตรวจสอบลิงก์จากบทความนี้ (ซอฟต์แวร์โอเพนซอร์ซเขียนด้วยภาษา erlang) และคุณอาจพบรหัสที่น่าสนใจ


-4

เมื่อคุณเพิ่มแท็กฟังก์ชั่นการเขียนโปรแกรมวิธีการเกี่ยวกับการเขียนคอมไพเลอร์ Erlang หรือล่ามใน Haskell? เออร์แลงไม่ได้เป็นรัฐที่ล้ำสมัยอีกต่อไปเช่นกัน ฉันแนะนำให้เรียนรู้ Erlang ภายในหนึ่งหรือสองวันเช่นภาษาอื่น (LISP, Prolog) และจากนั้นลืมพวกเขา พวกเขาเป็นเพียงขั้นตอนหนึ่งในการเรียนรู้ภาษา OOP ที่จำเป็น

สำหรับงานที่มีขนาดเล็กกว่าการใช้คอมไพเลอร์ให้ดูโครงการออยเลอร์

[แก้ไข] เพื่อตอบความคิดเห็น:

จากมุมมองทางเทคนิค: Erlang ทำได้ดีในสมัยก่อนเมื่อไม่มีตัวประมวลผลแบบมัลติคอร์ แต่ตอนนี้ - ให้คอมไพเลอร์ / ล่ามที่ฉันมีอยู่ - มันไม่ได้ขยายขนาดอย่างที่ควรจะเป็น ล่ามที่เขียนใน Haskell จะขยายขนาดการรวบรวมไปยัง Haskell จะทำให้เร็วขึ้น แต่จะลบคุณลักษณะการเปลี่ยนรหัสแบบทันทีทันใด

จากมุมมองของโปรแกรมเมอร์: Haskell ไม่ใช่สำหรับงานที่เกี่ยวข้องทั้งหมดเป็นทางเลือกที่ดีที่สุด แต่ atm ภาษาขั้นสูงอาจเป็นภาษาที่มีการทดลองสูงมากและงานที่ไม่เกี่ยวข้องมักจะทำกับระบบฝังตัว (เช่นไมโครคอนโทรลเลอร์และ GPU) หรือ numbercrunching โดยที่ C และ Assembler ยังคงเป็นตัวเลือกที่ดีที่สุด

อะไรที่คุณสามารถทำได้กับ Erlang ดีกว่าในภาษาอื่น ๆ ?


4
ฉันไม่ได้อ้างสิทธิ์ในการเรียนรู้เพราะเป็นสิ่งที่ล้ำสมัย ฉันแค่คิดว่ามันดูน่าสนใจและอาจมีบางสิ่งที่คุณสามารถสร้างขึ้นด้วยภาษาอื่นที่คุณไม่สามารถทำได้ หากคำตอบของคุณคือ "Haskell เป็นตัวเลือกที่ดีกว่าสำหรับงานที่เกี่ยวข้องทั้งหมด" จะบอกฉันได้อย่างไรว่าทำไมโดยเฉพาะ (แทนที่จะเพียงแค่อ้างว่าคลุมเครือ) และตอบคำถามเริ่มต้นสำหรับ Haskell แทนที่จะเป็น Erlang?
Inaimathi

1
ผมไม่ทราบว่าคำตอบนี้เป็นที่ไม่ดีแม้ว่ามันจะกระโปรงขวารอบคำถามเดิม หากคุณต้องการเห็น Haskell ที่น่ารักในแง่ที่ว่า comanad กำลังพูดถึงให้ดูที่en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hoursมันเป็นแบบฝึกหัดที่สอน haskell, parsec parsing library และวางแผนโดยการเขียน parser . ผู้เขียนโปรแกรมแยกวิเคราะห์คือฉันรู้สึกว่าเป็นหนึ่งในสิ่งที่สวยงามยิ่งกว่าที่จะเล่นในภาษาที่ใช้งานได้ พวกมันก็ใช้งานได้จริงเช่นกัน เมื่อคุณรู้วิธีการเขียนโปรแกรมแยกวิเคราะห์คุณสามารถออกแบบภาษาของคุณเองเพื่อแก้ไขปัญหาเฉพาะ
CodexArcanum

1
"อะไรคือสิ่งที่คุณสามารถทำกับ Erlang ได้ดีกว่าในภาษาอื่น" ฉันไม่รู้ นั่นเป็นเหตุผลที่ฉันพยายามเรียนรู้ ความกล้าหาญของฉันบอกฉันว่าภาษาที่มีโครงสร้างหลักคือกระบวนการ (ตรงข้ามกับการปิดใน CL, แลมบ์ดาใน Scheme หรือพจนานุกรมเหมือนในไพ ธ อน) จะมีสิ่งที่น่าสนใจ Haskell ก็ใช้งานได้เช่นกันและมีรูปแบบการจับคู่รูปแบบที่คล้ายคลึงกัน อันที่จริงโครงสร้างหลักใน Haskell ดูเหมือนจะเป็นแบบที่ทำให้ฉันคิดว่าพวกมันเป็นสัตว์ที่แตกต่างกันมาก
Inaimathi

2
@CodexArcanum - AFAIK, Erlang และ OTP มีให้บริการภายใต้สัญญาซื้อขายล่วงหน้าของ Mozilla Public License และเป็นบริการฟรีในเบียร์จาก repos Debian คุณหมายถึงอะไร "ระบบนี้เป็นกรรมสิทธิ์"?
Inaimathi

1
@comonad - สิ่งที่ฉันหมายถึงโดย "Haskell เป็นตัวเลือกที่ดีกว่าสำหรับงานที่เกี่ยวข้องทั้งหมด" คือ "สำหรับทุกงานที่ฉันสามารถทำให้สำเร็จด้วย Erlang ได้ Haskell สามารถทำได้ดีกว่า" ฉันไม่ได้ตั้งใจจะบอกว่าคุณสามารถทำงานเขียนโปรแกรมทั้งหมดด้วยภาษาเดียวหรือว่าฉันกำลังมองหาที่จะใช้ภาษาเดียวสำหรับโครงการของฉันทั้งหมด คุณดูเหมือนจะถามว่า "ทำไมต้องใช้ Erlang เมื่อคุณสามารถใช้ Haskell ได้?" ซึ่งก็หมายความว่าคุณคิดว่า Haskell นั้นดีกว่าโดยตรง ฉันต้องการให้คุณชี้แจงและสนับสนุนการเรียกร้องนั้น
Inaimathi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.