Elixir自体に慣れようと、Get startedをなめてみました。Elixir 1.0.4がリリースされた頃のものです。以下はメモがてら、です。 http://elixir-lang.org/getting-started/introduction.html すごくDocumentが整備されている感がありました。 特に繰り返しでは再起を使うというRecursionの説明があったあと、それを容易にするための Enum を提供しててその機能に関する説明、 Stream の話もという形で頭にストーリーを植え付けながら内容を理解できる感じです。 以下、ちょっとメモです。 Modules http://elixir-lang.org/getting-started/modules.html でコンパルしたとき、 を実行したディレクトリと同じディレクトリにコンパイルしたものがあれば、自動的に読み込まれてりようできるもよう。 はスクリプトとして実行される。 defpは、同一モジュール内からのみ呼ぶことが可能なprivateなモジュール。なるほど。継承とかどうなのかな。(まだそこらへんは読んでない。 defoverridable で提供されているらしい?めも) Recursion http://elixir-lang.org/getting-started/recursion.html 再起でforを実現するのは関数型っぽくて頭になじまないと厳しそう。ただ、ここら辺は大学とか含めて数学的な素養を学んだ人からすると、慣れるまでに時間もかからなさそう。数列の世界の話みたいなものですしね。 Enum のライブラリにいくつかあらかじめライブラリが用意されているので、それは便利。ちょうど次の章で説明されていた。 http://elixir-lang.org/getting-started/enumerables-and-streams.html EnumとStreamを比較しながら話が進んでいて、StreamはLazyというところが違うと書いていた。 Enumは常にEnumの実際の値を返すけれど、Streamは必要なときに実際の値を返すがそれまではStreamとして保持している、と。 Pipeoperatorの対比を見ればおおー、なるほどという感じだった。 Pipeoperatorのときは基本Stream使っていって、lazinessが必要な大きなデータを扱うようなときとかコレクションを使ったりするときはEnumを使っておけば良い、という感じかな。 チュートリアルでの最後の締めは以下。 The amount of functions and functionality in Enum and Stream modules can be daunting at first but you will get familiar with them case by…More
Tag Archives: elixir
Elixirに関するメモ
メモ awesome series for Elixir https://github.com/h4cc/awesome-elixir ReactJS + Phoenix 少しReactJSを触るという目的も含め、やってみました、程度です。 https://github.com/KazuCocoa/react_phoenixMore
PhoenixをHeroku上で動かしてみた
ElixirのPhoenixをHeroku上で動かしてみました。久しぶりにheroku動かしたのですが、GitHub連携やDropbox連携も追加されたのですね。 環境 Erlang version 17.5 Elixir 1.0.4 Phoenix 0.13.1 テンプレートプロジェクトの作成 Deployするプロジェクトは以下を参考に、簡単なサンプルプロジェクトにしました。 http://www.phoenixframework.org/v0.13.1/docs/up-and-running Herokuへのdeploy対応 Herokuへのdeployは、heroku-buildpack-elixirを使いました。 https://github.com/HashNuke/heroku-buildpack-elixir 基本的にはここに書かれている手順を踏めば良いのですが、軽く手順を残しておきます。 elixir_buildpack.config を生成する 内容は以下です。 Procfile の作成 内容は以下。 Heroku側の設定 ひとまず、手軽にdev環境を稼働させたかったので以下の対応をしました。 1. dev環境の設定 2. config/dev.exs を修正してポートをシステム依存にする 以下のような感じ。 3. DBの設定 HerokuのPostgreSQL Pluginを使い、usernameやpassword、databaseを作成します。 passwordなんかの大事な情報は、Herokuの環境設定を活用しましょう。 4. Deploy 接続 あとはHerokuのダイナモの数を調整して、アクセスできるようにします。 だいぶんお手軽にDeployできるようになりました。これから手を動かすぶんにはEC2やローカルで良さそうな気がしますが。 実施したリポジトリはこちら https://github.com/KazuCocoa/hello_phoenix/releases/tag/20150521 追記: 2015/07/30 Phoenix 0.15のheroku deployを見てみると、 config/prod.secret.exs を消して config/prod.exs に統一することが必要みたいですね。 確かに、何もしないでdeployすると config/prod.secret.exs が無いというエラーが確認されます。More
Phoenix Frameworkを触ってみる
何かやるなら、簡単なWebアプリとかかなと思ったのと、Elixirのフレームワークを何か触ってみようかなと思い以下のPhoenixを試してみました。 私が試したのはv0.13.0です。 http://www.phoenixframework.org/v0.13.0 雛形のinstallからsetupまでは以下を見ると特に問題なくできるのでリンクだけ。 http://www.phoenixframework.org/v0.13.0/docs/up-and-running 試しに、以下の記事を参考にテストを書くまで使ってみました。 http://postd.cc/testing-a-phoenix-elixir-json-api/ 作成したリポジトリは以下。 https://github.com/KazuCocoa/hello_phoenix 実行する前にpostgresqlを以下のように用意しておく必要があります。 確認 ユーザ作成 ざっとディレクトリ構成やmigrationを試してみると、Ruby on Railsがまんま持ってこられている印象をうけました。なるほど。 まだ1日くらいしか触ってないのですが、ちょっとexersism.ioで幾つか問題解きながら頭に文法をなじませようかな。More
Elixirを触ってみた
ErlangのVM上で動作する、文法はRubyのようなものですね。 WebPage http://elixir-lang.org/ GitHub https://github.com/elixir-lang/elixir Erlangの資産を使えます。ErlangはConcurrencyな処理では以前より使われていると聞くので、Rubyをそのような方面でも使えるようにといったコンセプトでは面白いですね。 exercismでは、Elixir向けの問題も提供しているので、少しやってみました。 以下のような感じでコードがかけます。 Gistはこちら: https://gist.github.com/KazuCocoa/b2c3d910d33c16210fc1 Rubyを少し書いたことがあると、大きくつまづくことはなさそう。 なるほどね。More