エリクサーから始める
9585 ワード
エリクサーとは
Elixirは非常に並行しているアプリケーションのために最もよく使用されるErlang仮想マシンの上に構築された動的にタイプされ、コンパイルされた、関数型プログラミング言語です.アーランは、より信頼性の高い電話の切り替えを作成するためにEriccsonで1986年に作成されました.ElixirはErlang仮想マシンの上部に作成されました.Elixirは以下の例で見る非常にRubyのような構文を使用します.機能とオブジェクト指向プログラミングの違いについてもっと知るために、私は記事の一番下にリンクされたリソースを持っています.
エリクサーのインストール
エリクシールをインストールするにはthis リンクして、オペレーティングシステムに応じて指示に従ってください.私はMac上で、私がしなければならなかったすべてのhomebrew使用しているので
brew install elixir
私が必要とするすべてをインストールするために、ターミナルに.vscodeを使用する場合は、this 自動補完や構文強調表示のようなものを支援する拡張.IEXの使用
Elixirは機能をテストするために使用できるIEXと呼ばれる独自の端末ベースのREPLが付属しています.Rubyに精通しているなら、これはIRBのようなものです.JavaScriptの背景があれば、端末のノードを使うのと似ています.IEXタイプを使用するには
IEX
端末で.あなたのreplを開始した後、それを入力しようとして作業していることを確認しますIO.puts "Hello, world!"
端末では、2つのものを出力しなければなりませんHello, world!
印刷してください:ok
返される.エリキシルの使用
先に述べたように、ElixirはRubyのような構文を使用します.あなたはルビーと時間を構築するプロジェクトの任意の量を費やしている場合は、学習と読書Elixirはおそらくかなり迅速に来るでしょう.簡単なウォークスルーとして、私たちはどのように我々はFizzBuzzを解決するプログラムを作成することができますが表示されますこのデモのコードが来たからhere . 私は、私が3日間でエリキシルを学んだと言うことができればよかったです、しかし、私はちょうど表面をこすりました、あなたがFizzBuzzを解決するもう一つの可能な方法に興味があるならば、その関連をチェックしてください、そして、私は記事の底でより多くの解決と関連を持ちます.This あなたがFizzBuzzに慣れていないならば、Linkは我々が後にしているものの働くバージョンを持ちます.
まず、このファイルの新しいディレクトリを作成します.これを行うには
mkdir elixir-fizzbuzz
端末で.次に、次のコマンドを実行してディレクトリを新しいディレクトリに変更する必要がありますcd elixir-fizbuzz
. あなたが新しいディレクトリにいる今、あなたは新しいエリクサーファイルをつくることができます.Elxirファイルを作成するために使用できる2種類のファイル拡張子があります.This スタックオーバーフローの質問は、ファイルの拡張子の種類を使用するときに良い答えがあります.この例ではfizzbuzzというファイルを作成します.これを行うには、コマンドを実行する必要があります
touch fizzbuzz.exs
. ファイルを作成したら、選択したテキストエディターでディレクトリを開きます.
まずモジュールを作ります
#Define module
defmodule Solution do
end
次に、関数の書き込みを開始します#Define module
defmodule Solution do
#Define type specs
@spec fizz_buzz(n :: integer) :: [String.t]
#Define FizzBuzz function
def fizz_buzz(n) do
#Loop through range of numbers
for i <- 1..n do
end
end
end
今、私たちは、それぞれの数が3と5で割り切れるかどうかチェックするプライベート関数を呼び出すことができます.#Define module
defmodule Solution do
#Define type specs
@spec fizz_buzz(n :: integer) :: [String.t]
#Define FizzBuzz function
def fizz_buzz(n) do
#Loop through range of numbers
for i <- 1..n do
#Call Result() for each number in the range
result(i)
end
end
end
#Handle divisble by 3 & 5
defp result(n) when rem(n, 15) == 0, do: IO.puts("FizzBuzz")
#Handle divisble by 3
defp result(n) when rem(n, 3) == 0, do: IO.puts("Fizz")
#Handle divisble by 5
defp result(n) when rem(n, 5) == 0, do: IO.puts("Buzz")
#Handle not divisble by 3 or 5
defp result(n), do: IO.puts(Integer.to_string(n))
end
#Call function fizz_buzz/1 with range of 100 from Solution module
Solution.fizz_buzz(100)
私たちの関数がすべて定義されているので、あなたの端末タイプでそれをするために、我々のコードを走らせますelixir fizzbuzz.exs
.エリクサー用
あなたがチェックするならばStack Overflow developer survey あなたは実際に多くの開発者が実際に使用している言語だと言う回答者の1.74 %で、実際にエリクサーを使用して多くの開発者が表示されます.しかし、トップ5ではloved vs dreaded カテゴリは、それを愛するほとんどの人を意味する.Elixirは、非常に大きなユーザベースを一度にサポートする必要があるプロジェクトや、高速応答を必要とするプロジェクトにしばしば使用されます.今現在、Elixir Langウェブサイトに12社があり、様々な問題への解決策としてエリクサーを使用しています.例えば、Discord uses Elixir 1万人のアクティブなユーザーをサポートするメッセージングサービスの基礎として.Change.org uses Elixir として、彼らはそれ以上の速さを発見.全体としてエリクサーや機能プログラミングには多くの取り込みがありませんでしたので、できるだけ多くの仕事のために仕事を準備したいならば、それは最も有用なスキルではないかもしれません.場合は、代わりにどのように高度にスケーラブルで実行可能なアプリを作成することができますを把握しようとしている場合は、エリクサーはあなたのための良いオプションかもしれません.
資源
ここでは、あなたがエリキシルについての詳細を学ぶように便利ないくつかのリソースがあります:
Reference
この問題について(エリクサーから始める), 我々は、より多くの情報をここで見つけました https://dev.to/kadeesterline/get-started-with-elixir-53jnテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol