タグ付けされた質問 「elixir」

Elixirは、オープンソースの動的なコンパイル済みの汎用関数型プログラミング言語です。Erlangプラットフォームと完全に互換性があるように設計されており、ソフトなリアルタイム保証とホットコードスワッピング機能を備えたフォールトトレラントな分散アプリケーションの作成に最適です。

8
Elixirにはなぜ2種類の関数があるのですか?
私はElixirを学んでいて、なぜ2種類の関数定義があるのか​​不思議に思います。 defを使用して呼び出されたモジュールで定義された関数myfunction(param1, param2) fnを使用して呼び出され、で定義された無名関数myfn.(param1, param2) 2番目の種類の関数だけがファーストクラスのオブジェクトのようであり、パラメーターとして他の関数に渡すことができます。モジュールで定義された関数は、でラップする必要がありますfn。otherfunction(myfunction(&1, &2))それを簡単にするために似ている構文糖がありますが、そもそもなぜそれが必要なのですか?なぜ私たちはできないのotherfunction(myfunction))ですか?Rubyのようにモジュール関数を括弧なしで呼び出すことだけを許可するのですか?モジュールの機能とファンも持つErlangからこの特性を継承しているようですが、実際にはErlang VMが内部でどのように機能するかに由来していますか? 2つのタイプの関数を持ち、それらを他の関数に渡すためにあるタイプから別のタイプに変換する利点はありますか?関数を呼び出すための2つの異なる表記法がある利点はありますか?
279 erlang  elixir 



8
Elixirで変数のタイプをどのように確認しますか
Elixirでは、Pythonなどでタイプをどのようにチェックしますか: >>> a = "test" >>> type(a) <type 'str'> >>> b =10 >>> type(b) <type 'int'> Elixirで読んだところ、「is_bitstring」、「is_float」、「is_list」、「is_map」などのタイプチェッカーがありますが、タイプが何であるかわからない場合はどうなりますか?
138 elixir 

6
エリクサー:使用vsインポート
違いは何だuseとはimport? 使用は、特定のモジュールを現在のコンテキストで使用するための単純なメカニズムです。 https://hexdocs.pm/elixir/Kernel.SpecialForms.html#import/2 他のモジュールから関数とマクロをインポートします 1つの違いはimport、特定の関数/マクロを選択するのに対して、useすべてを導入することです。 他に違いはありますか?いつどちらを使用しますか?
134 elixir 

1
Elixir / erlangはマイクロサービスアプローチにどこに適合しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 この質問を改善する 最近、共同作業する複数のマイクロサービスをデプロイするために、Docker Composeでいくつかの実験を行っています。マイクロサービスが提供する多くの利点を見ることができ、それらを管理するための優れたツールセットがあるので、マイクロサービスワゴンに飛び込むことはそれほど難しくないと思います。 しかし、私はElixirも実験しており、それ自体がもたらす利点をとても気に入っています。それはあなたのコードを複数の分離されたアプリケーションに詰め込むことを奨励し、ホットコードのアップグレードをサポートすることを考えると、どのようにdockerをelixir(またはそのことについてはerlang)と混合しますか? たとえば、dev-prodパリティを提供するためにdockerを使用したい場合、elixirはそれにどのように適合しますか?Dockerコンテナーは不変であることを考えると、ホットコードのアップグレードを実行できなくなりますよね?青/緑のデプロイメントまたはカナリアリリースについてはどうですか? つまり、Elixirでマイクロサービスを作成して、他の言語で作成されているかのようにそれらを使用することができます。ポリグロティズムは、いずれにせよマイクロサービスの利点の1つですが、OTPプラットフォームを使用することの完全な利点は得られません。純粋なコラボレーティブerlangアプリケーションは、中間のキューを使用して異なる(または異なる)言語で記述されたマイクロサービス間で通信するよりもはるかに最適であると推測します。

4
ElixirがErlangができないこと、またはその逆ができることはありますか?
この質問は、Beam VMとそれが提供する機能のコンテキストにあり、Turingの完全な言語が実行できることの一般的なコンテキストではありません。純粋なアーランかエリクサーのどちらかを学ぶために時間をかけたいです。私は2つの間の基本的な違いを理解し、今日、マクロ、より良い構文、および言語のより速い開発のために、Elixirに傾いています。 私の質問は、エリクサーを選択した場合、Erlangでは実行できないが、Elixirでは実行できない何かに遭遇しますか?ElixirですべてのOTPのもの、すべてのErlangライブラリ、コードの再読み込みなどを使用できますか? 私は2人の間の誰かの好みを求めているのではありません。言語の可能性についての事実。できれば両方をプロダクションで使用した人から。
102 erlang  elixir  otp 

3
キーワードリストの利点は何ですか?
エリキシルにはマップがあります: > map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"} > map.a # = "one" > map[:a] # = "one" キーワードリストもあります。 > kl = [a: "one", b: "two"] # = [a: "one", b: "two"] > kl2 = [{:a, "one"},{:b, "two"}] # = [a: "one", …
101 elixir 


3
Railsコンソールに相当するフェニックスはありますか
私は、PhoenixとElixirを学んでいます。Ruby/ Railsから来て、REPLでpryデータベースとアプリケーションの状態を検査しています。 私はフェニックスアプリでデータベースとモデルを操作する方法を理解しようとしています。私は知っていますがiex、それを使用してアプリのデータベースをreplから検査する方法がわかりません。replから毎回ectoでそれに接続する必要がありますか?rails console同等のものはありますか?フェニックスのドキュメント、Elixir Dose、およびEctoリポジトリを確認しましたが、探しているものが見つかりません。何か不足していますか? 編集:以下の回答に基づいて、私は外部ドキュメントのこのセクションを見つけました。これに基づいて私は次のようなことができますArticlesApi.Repo.all ArticlesApi.Article

3
IEx-複数行のコマンドをキャンセルするにはどうすればよいですか?
IExを使用して、追加の角かっこや「」のようなタイプミスをすると、ほとんどの場合、構文エラーが発生します。ただし、次のような場合があります。 iex(3)> Enum.each '12345', &(IO.puts(&1")) ...(3)> end ...(3)> ) ...(3)> ' ...(3)> end ...(3)> "" ...(3)> ... ? How to produce syntax error ? ...(3)> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution 構文エラーを起こして最初から続行することができず、IEx全体を再起動する必要があります。現在のiex(3)の実行をスキップして次のiex(4)に進むためのキーボードショートカットまたはコマンドはありますか?
84 elixir 

2
Elixirアプリケーションを実行する方法は?
Elixirアプリケーションを実行する正しい方法は何ですか? 私は次の方法で簡単なプロジェクトを作成しています。 mix new app その後、私はできる: mix run これは基本的に私のアプリを一度コンパイルします。だから私が追加すると: IO.puts "running" でlib/app.ex、私が見る"running"だけで初めて、それぞれの連続は、runいくつかの変更がない限り何もしません。生成されたもので次に何ができapp.appますか? もちろん、私は私ができることを知っています: escript: [main_module: App] でmix.exs、提供def main(args):してから: mix escript.build ./app でも、私の意見ではちょっと面倒です。 次のようなものもあります: elixir lib/app.exs しかし、それはmix.exs明らかにカウントされませんapp。これは、私のの依存関係に必要です。
84 elixir 

5
アイテムがElixirリストまたはタプルに存在するかどうかを確認するにはどうすればよいですか?
これは一見単純そうに見えますが、ドキュメントで見つけることができないようです。単に返すtrueかfalse、アイテムがリストまたはタプルに存在するかどうかを確認する必要があります。でEnum.find/3、実際にこれを行うための最善の方法? Enum.find(["foo", "bar"], &(&1 == "foo")) != nil
83 elixir 

11
Elixirで現在の日付や時刻を取得する
これは本当にばかげた質問のようですが、Elixirで現在の日付または時刻を取得して表示するにはどうすればよいですか?私はを通過しようとしたドキュメントが、何かを見つけることができませんでした。アーラン関数を使用する必要がありますか?
83 elixir 

1
Erlangのプロセス/メッセージとSmalltalkのオブジェクト/メッセージの違いは何ですか?
Smalltalkのオブジェクト/メッセージとErlangのプロセス/メッセージの違いを理解しようとしています。このトピックに関する次の投稿を読みました。 私が理解している限り、Smalltalkでは、すべてがオブジェクトであり、すべてが同じ「オブジェクト/メッセージ」の抽象化を持っています-番号1でさえ、メッセージの受け渡しでのみ到達できるオブジェクトです。ある1アーラン/エリクシルの処理は?Erlangのすべてがメッセージ/プログラムパラダイムへの応答ですか?Erlangの番号にメッセージを送信できますか? どうもありがとう。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.