Help us understand the problem. What is going on with this article?
全国の #state{} 大好きな皆さん、あなたはどっちの引き回しが好きですか。 ちなみに、いろいろあるようです。NewState1 のように New と +1 方式、あとは ChangeState だったり、 さらには S = #state{} で S1 だったりと、完全に好み問題です。 どれがいいとかはなく、好み問題なので、皆どれが好きなのかを知りたいというのこの記事の狙いです。 サンプルコード出典 https://github.com/erlang/otp/blob/3eddb0f762de248d3230b38bc9d478bfbc8e7331/lib/ssl/src/dtls_connection.erl#L264-L272 State0 から始まり +1 されていって最後に戻すときに State になる @voluntas 案 State1 = prepare_flight(S
背景 2011年からErlang/OTPの疑似乱数モジュールがあまりにもダメなのでなんとかしようといろいろ活動していたら、OTP 18.0に新しい疑似乱数モジュールrandを組み込んでもらえるという幸運に恵まれた。そして最近さらにこのモジュールにjump functionの機能追加をする作業をした1。この過程で「OTPに自分のモジュールをコミットする」ことについて、いろいろなことがわかってきたので、この記事ではざっと要点をまとめてみようと思う。 本当にそのモジュールはOTPで必要? そもそも論として本当にそのモジュールはOTPで必要かということをまず最初に考えないといけない。OTPは、今後パッケージマネージャを活用して分割される方向にあるとはいえ、基本的にはErlangとは不可分な形でついてくることが前提になっている。ということは、OTPの変更はErlang/OTPのユーザ全員2に対して影
Elixirの練習にと、Excelの特定のセルの値からCSVを吐いてみた。 もとのExcelのファイルレイアウトは以下の感じ。 あえて、空欄があったり、文字にスペースが含まれていたりするので、良い題材。 Excel読み込む為に、Excelion というライブラリを使用した。 入力用Excelファイル 何を処理しているかは、ソース内にコメントで説明。 defmodule ExcelSample do def convert do sheet_no = 0 result = "roster.xlsx" #=> 入力Excelファイル名 |> Excelion.parse(sheet_no, 1) # ExcelionでExcelファイル読み込み |> elem(1) # 戻り値の要素1番目を取得 |> Enum.map(&([Enum.at(&1,2), Enum.at(&1,7)])) #
Phoenix で、受け取った URL をどうやってディスパッチしているのか気になったので、mix phoenix.new hello_world で生成したプロジェクトから、順番に読んでいった。 HelloWorld.start/2 hello_world/lib/hello_world.ex: defmodule HelloWorld do ... def start(_type, _args) do ... children = [ # Start the Ecto repository supervisor(HelloWorld.Repo, []), # Start the endpoint when the application starts supervisor(HelloWorld.Endpoint, []), ] opts = [strategy: :one_for_on
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? José Valimさんの2017年3月17日付けのブログ記事Small data with Elixirの翻訳です。 Elixirで「データの集まり」を扱うモジュールには Enum Stream そして新しくできた Flow があります。 ざっくり説明すると Enumはデータを全部メモリ上に取り込んで処理する Streamはデータを必要な時に読み込んで逐次的に処理する(その名の通りStreamだから) Flowはデータを必要な時に読み込んで、さらに並行処理する という違いがあります。 なお、FlowはGenStageの上に作られている
-module(httpd_tcp_listener). -export([start_link/0]). start_link() -> Pid = spawn_link(fun init/0), {ok, Pid}. init() -> Port = 8888, Backlog = 10244, Options = [binary, inet6, % support both ipv4 and ipv6 {active, false}, {reuseaddr, true}, {backlog, Backlog} ], {ok, Listen} = gen_tcp:listen(Port, Options), accept(Listen). accept(Listen) -> case gen_tcp:accept(Listen) of {ok, Socket} -> {ok, Pid}
precedencegroup PipePrecedence { associativity: left higherThan: AssignmentPrecedence lowerThan: TernaryPrecedence } infix operator |>: PipePrecedence func |> <Input, Output> (lhs: Input, rhs: (Input) -> Output) -> Output { return rhs(lhs) } // 普通ver let storyboardName = storyboardName() let storyboard = UIStoryboard(name: storyboardName, bundle: nil) let viewController = storyboard.instantiateVie
最近知り合いから教えてもらいElixirをPhoenixフレームワークで勉強はじめました。 まずはどんな書籍やサイトがあるのかまとめてみます! ちなみにElixir(エリクサー)は、並行処理を得意とするプログラミング言語ErlangのVM(エンジン部分)を基盤とし、Erlangよりもなじみやすい文法を採用したプログラミング言語です。 【随時更新中】 リンク Elixir School Elixir基礎レッスンは、Twitterの Scala Schoolにインスパイアされたもので、Elixirの基礎が学べます! Elixir School 日本語訳 書籍 プログラミングElixir 世界的なRubyプログラマであるDave Thomas氏が書いた、プログラミング言語Elixirの本格的解説書、“Programming Elixir 1.2” (Pragmatic Bookshelf, 20
precedencegroup PipePrecedence { associativity: left higherThan: AssignmentPrecedence lowerThan: TernaryPrecedence } infix operator |>: PipePrecedence func |> <Input, Output> (lhs: Input, rhs: (Input) -> Output) -> Output { return rhs(lhs) } // 普通ver let storyboardName = storyboardName() let storyboard = UIStoryboard(name: storyboardName, bundle: nil) let viewController = storyboard.instantiateVie
はじめに 動機 先日こんな記事を書きました。 ドメイン駆動設計と関数プログラミングをScalaで - Qiita ドメイン駆動設計と関数プログラミングをElixirで - Qiita Scala にしても Elixir にしても、純粋な関数型プログラミング言語ではなくて、オブジェクト指向の要素も取り入れたマルチパラダイムな言語だと思いますが、一方で旧来のオブジェクト指向な言語に関数型のパラダイムが入り込んできているという傾向 (map, reduce とかラムダとか) もあり、これから先も、両者が共に近づいてそれぞれのいいところを活かしながら発展し、ソフトウェア開発における生産性や変更容易性が上がっていくのかなぁと期待が膨らみます。 この記事では、関数型の何がいいのか、PHP + オブジェクト指向で書くにあたって、何か取り入れられるところはないか、という点について、ドメイン駆動設計のイディ
Erlangを半年ほど使った感想を書いていきます。 チョロい つまり言語機能がとても少ないと感じました。 例えば私が読んだErlangの本はすごいE本だけなのですが、全部で30章ある内の9章までで言語機能が大体出揃ってます。 実際、プロジェクトでコードを書き始めましたが、言語機能で困ったことはほぼありませんでした。 私は、言語機能は一番検索し難しい機能だと思っていて、少なくとも言語機能に関しては検索するのではなく、一通り何らかのドキュメントを読んでおかないと始まらないと思っています。 例えば Python で def f(a, b, *c, **d): と書いてあって「* と ** って何だ?」と疑問に思った時、[python * **][検索] とかしても多分まともな結果は出ないでしょう。 なので、最初にドキュメントを読む量が減るという点で、言語機能が少ないというのはとても良いと思ってい
Erlangを触って半年程度の若輩者が、学んだことを可能な限りアウトプットする Advent Calendar です。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く