美しいアーランコード[閉鎖]


15

私は今まで遊んでいたおもちゃプロジェクトよりもErlangについてもっと学ぼうとしています。この目的のために、私はProgramming Erlangといくつかのアーカイブを読んでいます Armstrong on Softwareの

また、他の言語では不釣り合いに難しいと思われるErlangで作成できるものの種類を紹介するサンプルコード(できれば製品版)を読みたいと思います。を除いて(私は仮定する)Yawsに、言語の理解を深めたり、さまざまな言語構成体の慣用的な使用法を確認したりするために読み通せる美しいErlangコードの公開例はありますか?

私は特にそうではない「仕事を取得します」というコードを探していますが疑わしい慣行、または「ここにあなたが書く方法ですの線に沿っ例使用factorialErlangでの」。

同様に、この言語を学習するための優れた文献(言及されている「プログラミングアーラン」以外)をお勧めできますか?好みとしては、あなた自身がそれを学習するために使用したものですが、コミュニティ標準の本がいくつかある場合は、それらも入れてください。


Erlangは、電話トラフィック用の超並列スイッチを設計および構築するためにEriccsonによって作成されました。分散型のフォールトトレラントなソフトリアルタイムのノンストップアプリケーションをサポートするために、エリクソンによって設計されました。それが優れている問題領域です。他のすべての問題のあるドメインについて...あなたの走行距離は異なる場合があります。
ロバートハーヴェイ

回答:


6

別の良いリファレンスは、ErlangとOTP in Actionです。

コードサンプルについて:Erlangのベストプラクティスを見つけるのは少し難しいですが、次のWebサイトを試してみることをお勧めします。

この記事(erlangで書かれたオープンソースソフトウェア)のリンクをチェックすると、興味深いコードが見つかるかもしれません。


-4

タグ機能プログラミングを追加したので、HaskellでErlangコンパイラーまたはインタープリターを作成してみませんか?Erlangはまったくまったく最新のものではありません。他の言語(LISP、Prolog)のように、Erlangを1、2日で学習し、それらを忘れることをお勧めします。それらは、命令型OOP言語を学ぶための単なる一歩です。

コンパイラーの実装よりも小さなタスクについては、Project Eulerを参照してください。

[編集]コメントに回答するには:

技術的な観点から:Erlangは、マルチコアプロセッサがなかった昔は良かったです。しかし、今では–既存のコンパイラ/通訳を考えれば–それは、もはや本来のようにスケーリングしません。Haskellで書かれたインタープリターはスケーリングされ、Haskellにコンパイルされると高速になりますが、オンザフライのコード置換機能は削除されます。

プログラマーの観点から:Haskellはすべての適用可能なタスクに最適な選択ではありませんが、ATM、おそらくより高度な言語は非常に実験的であり、それらの適用できないタスクは通常、組み込みシステム(マイクロコントローラーやGPUなど)またはCとアセンブラーが依然として最良の選択である数値演算。

他の言語よりもErlangでできることは何ですか?


4
それが最先端であるため、私はそれを学ぶことを主張しませんでした。私はただそれが面白そうだと思うし、他の言語では簡単にできないもので構築できるものがあるかもしれません。あなたの答えが「Haskellはすべての適用可能なタスクにとってより良い選択」である場合、理由を具体的に(単に漠然と主張するのではなく)教えて、ErlangではなくHaskellの最初の質問に答えてください。
イナイマティ

1
私はこの答えがあることを知っていないこと、それは元の質問の周りにスカート右をしても、悪いです。comanadが話しているという意味で素敵なHaskellをご覧になりたい場合は、en.wikibooks.org / wiki / Write_Yourself_a_Scheme_in_48_Hoursをご覧ください。haskell、パーセク解析ライブラリ、およびスキームパーサーを記述してスキームを教えるチュートリアルです。 。パーサーのコンビネーターは、関数型言語で使用するより美しいものの1つだと感じています。それらも少し実用的です。パーサーの作成方法がわかれば、独自の言語を設計して特定の問題を解決できます。
CodexArcanum

1
「他の言語よりもErlangでできることは何ですか?」知りません; それが私がそれを学ぼうとしている理由です。私の腸は、主要な構造がプロセスである言語(CLのようなクロージャー、Schemeのようなラムダ、またはPythonのような辞書とは対照的)が提供する何か面白いものを持っていることを教えてくれます。Haskellも機能的であり、同様のパターンマッチング構造を備えていますが、同時実行性に執focusな焦点はありません。実際、Haskellの主要なコンストラクトはタイプであるように思われ、それらは非常に異なる動物だと思います。
イナイマティ

2
@CodexArcanum-AFAIK、Erlang、およびOTPは、Mozilla Public Licenseの派生物の下で利用可能であり、Debianリポジトリからビールとして無料です。「システムはプロプライエタリです」とはどういう意味ですか?
イナイマティ

1
@comonad-「Haskellは適用可能なすべてのタスクに適した選択肢です」という意味は、「Erlangで問題なく完了することができるすべてのタスクについて、Haskellがより適切に実行できます」でした。私は、すべてのプログラミング作業を単一の言語で行えること、またはすべてのプロジェクトで1つの言語のみを使用することを考えていたことを意味するつもりはありませんでした。「Haskellを使用できるのに、なぜErlangを使用するのですか?」と尋ねているようです。これは、Haskellが直接優れていると思うことを意味します。その主張を明確にし、おそらくサポートしてほしい。
イナイマティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.