elixir
exercism.org useマクロやBehaviourは難しい印象があったけど、そんなことは無かった。 むしろ使いこなせたら楽しいだろうな、と思う。 Elixirだからguard節を使って同じ関数を何個も宣言したスタイルを書きがちだけど、Behaviourは関数毎に@implアノテーシ…
exercism.org 問題を理解するのに時間が掛かった。 with句は処理を連続させて、途中でエラーハンドリングが必要になったらelse節に投げてエラーハンドリングができる。 一連の流れの中で何度もエラーチェックをする必要が無く、エラーハンドリングをまとまっ…
exercism.org 問題3で引数に負数を渡してるせいで、問題2を解いている時に実行時エラーになりまくって凄い時間が掛かった。 引数の値が原因なんだからどれだけコードを捏ねくり回しても直らない訳だ。原因を突き止められたのは凄い。
exercism.org プロセス周りは苦手だから時間が掛かった。 けれど、プロセスについて少し詳しくなった実感がある。 要は、実行したい処理を他のプロセスに投げて自分は結果待ちにできるということ。 意識を変えないといけないのは、プロセス1個1個の結果を待…
exercism.org
exercism.org exercism.org
exercism.org Elixirでポリモーフィズムを実現する仕組みの defprotocol を学んだ。 思ったよりも簡単。使う側が定義できるから自作のモジュールに対して標準モジュールの挙動を変更することもおそらくできる。 exercism.org Erlangの:io_lib.format/2の書き…
exercism.org 並行プログラミングのためのAgentモジュールを使った問題を解いた。 この問題の範囲では、プロセスは単純に状態(値)を入れておく器として扱った。 exercism.org この方の回答を読んで、この問題はMapを使ったほうが良いと感じた。 自分はタプル…
exercism.org コミュニティの上位の回答を見ると、Mapに対するパターンマッチはあまり使わないのが一般的なのかな。 個人的にはパターンマッチを利用して値を取り出すのが良いと思っていたけど、ドットアクセスよりも便利かは分からない。 逆にドットアクセ…
exercism.org 距離によるバッテリーの消費はロジックを書いてみた。 構造体を返却するときはどの構造体なのかを明示的に書いた(というか、書かないとMapになってしまう)
その1 exercism.org 最後の設問は色々な解き方があってElixirの表現力が分かる問題だと感じた。どれがベストなのかは分からない。 if を使った解法(1度目の提出) exercism.org with を使った解法 exercism.org and を使った解法 exercism.org case を使った…
exercism.org ↑ 今回から自分の回答を掲載していく。 exercism.org 言い訳をすると、最初に思い付いたロジックはベスト回答と同じだった。 ただ、どうやって無名関数の中でバイナリのパターンマッチをさせるかが分からなくて今の形になった。 Strings in Eli…
exercism.org exercism.org この人の回答がパターンマッチのやり方とか、&表記時のアクセスの仕方の勉強になった。 exercism.org
exercism.org Sigilのおかげで日付など特定のデータ型の表現が非常に簡単なのもElixirの良いところだと思う。 各Sigilが、必要なデータが無ければエラーを返してくれるのも嬉しい。 例えば、NativeDateTime(~N)であれば、年だけ渡された時に勝手に日付や時刻…
exercism.org この問題を解くのに3日くらい掛かった。 バイナリ形式で文字列を結合する際に::bitstrigのバイナリフォーマットの指定が必要だった。
exercism.org exercism.org Elixirを動かしているErlangも始めた。 自力で全問正解させたら、他のユーザーのスマートな解答が見られるから勉強になる。
exercism.org
www.pragprog.com 上記ページの"Exercise Solutions"というリンクから各問題の解答が書かれたPDFをダウンロードできる。 私の手元にあるのは『Programming Elixir 1.2』を和訳した『プログラミングElixir』だから細部は違うと思うが、概ね合致しているはず。…
結論 lib/ が.gitignoreに書かれていた メイン言語で lib/ を.gitignoreしている人は気をつけよう 経緯 Gigalixirはelixirで作ったソフトをデプロイできるPaaSです。 サーバ停止時間が無くカスタムドメインやSSLが利用できるため、elixir/phoenixで開発して…