【関数】Erlang Part 2【エリクソン】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/07/20(火) 16:13:49
■前スレ
【関数】Erlang【エリクソン】
ttp://pc12.2ch.net/test/read.cgi/tech/1176479959/

■関連URL
ttp://www.erlang.org/
ttp://www.erlang.org/download/erlang-book-part1.pdf
ttp://ja.wikipedia.org/wiki/Erlang
ttp://www.planeterlang.org/
ttp://cean.process-one.net/
ttp://www32.atwiki.jp/erlang/
ttp://jijixi.azito.com/cgi-bin/diary/index.rb?category=Erlang
ttp://www.kmonos.net/alang/etc/erlang.php
ttp://quasiquote.org/log2/Erlang
ttp://www.youtube.com/watch?v=uKfKtXYLG78
ttp://video.google.com/videoplay?docid=-5830318882717959520
ttp://erlide.sourceforge.net/
ttp://rucila.s43.xrea.com/memo/?date=0304
2013/04/25(木) 23:12:46.92
>>174
> escriptでプログラム動かすときmain/1のアリティを使う場合、main([Arg])な感じに書かないと
> 思ったように動かなかったんだけどアリティを[]で囲むのってescriptで動かす場合だけなの?

まず、argumentとarityを取り違えてる。

コマンドラインで与えた引数がStringのリストとしてmain/1に渡されるので、
main([Arg])としたら、引数が1個の時だけマッチして、かつその引数がArgに入る。

参考:
ttp://erlang.org/doc/man/escript.html
2013/04/26(金) 00:44:56.26
>>175
なんとなく分かった気がしました。
参考URLありがとうございました
177デフォルトの名無しさん
垢版 |
2013/07/15(月) NY:AN:NY.AN
公式のドキュメントや飛行機本にでてるリスト内包表記でサンプルに
ピタゴラスの定理が使われてるけど
pyth(N) ->
[ {A,B,C} ||
A <- lists:seq(1,N),
B <- lists:seq(1,N),
C <- lists:seq(1,N),
A+B+C =< N,
A*A+B*B == C*C
].
の条件の最期の2行がなんでこんな条件書くだけで
プログラムが動作するのかが納得がいかないのは自分だけ?
2013/07/15(月) NY:AN:NY.AN
あなただけ
2013/07/16(火) NY:AN:NY.AN
バックトラック
2013/07/16(火) NY:AN:NY.AN
>>177
過去、自分も納得いかんかったw

で、リスト内包表記で書かれたリスト処理をmap/filter/concatで書き直すことが可能な事は、
以下の書籍で明解に解説されているので、書店などで立ち読みするなりを薦める

 関数プログラミング, R.バード/P.ワドラー共著, 武市正人訳
  http://www.amazon.co.jp/dp/4764901811/
  リスト内包表記の書き直しは節「3.4 リストの写像と濾過(mapとfilter)」内の p66-68を

ちなみにこの本、最近出版された第2版で全面的にHaskellへ書き換えられた(改悪された?)が、
上記のリスト内包表記の書き直しを含むいくつかの基礎的な事柄が削られているので注意要
2013/07/16(火) NY:AN:NY.AN
バックトラックなの?
A, B, C それぞれについて、1 から N の全組み合わせだと思ってたけど。
182デフォルトの名無しさん
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>180
へー
参考になった
183180
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>181
いくつかの規則に従って、内包表記をmap/filter/concatから構成される一般的な式へ
書き換える(変換する/翻訳する)手法だから、Prologのバックトラックとはまったく違う
詳しくは>>180の書籍を参照

Erlangのオリジナルは論理型言語から出発しているが、
その言語とは(Concurrent PrologやGHCといった)並列論理型言語のことであり、
(いわゆるPrologと呼ばれる)逐次論理型言語が持つバックトラック機能は失われている
だから、逐次Prologに関する知識の多くはErlangでは役に立たないと考えた方がいい
184177
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>180
最初の3行で1からNまでのリスト3つ作って勝手に総当りでもやってんのかと
思ってましたけどそんな機能あったんですね。
とりあえずバックトラックについてはググって
本は図書館に初版あればいいけどとりあえず探してみます。
2013/07/16(火) NY:AN:NY.AN
パックトラックはprologのモノとは違うのか
2013/07/16(火) NY:AN:NY.AN
総当たりやってるんじゃないの?
187180
垢版 |
2013/07/16(火) NY:AN:NY.AN
リスト内包表記について、関数型言語の実装技法を解説した以下の書籍に(>>180より詳しい)説明あり

"The Implementation of Functional Programming Languages", Simon Peyton Jones, 1987
 http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/
 リスト内包表記については、Chapter 7 List Comprehensions を参照

リンク先のページでは、この書籍の全文がPDFとして無償公開(タダ!!)されているので、一読をば

>>185
Erlangでもバックトラックのアルゴリズムは記述できるけど、
Erlangの計算モデルでバックトラックが使われているという話を(自分は)見たことも聞いたことも無い
また、Erlangはパターンマッチングが使えるけれど、これもPrologの単一化(unification)とは別物
>>183で書いたように、Erlangと類似性があるのは(バックトラックを捨てた)並列Prologだ
Erlangの外観が逐次Prolog(いわゆるフツーのPROLOG)と似ているからといって、惑わされてはいけない

>>186
基本的な考え方は総当たりだね、いわゆる generator&filter パターンと呼ばれる手法
で、リスト内包表記をg&fパターンへ書き換える技法を解説したのが>>180や上記の書籍になる
2013/07/16(火) NY:AN:NY.AN
難しい用語はすっ飛ばして、総当りとやってる事は何か違うの?見かけ上じゃなくて実質的に
2013/07/17(水) NY:AN:NY.AN
>>188
総当たりでも、深さ優先か幅優先かで停止性が異なる
2013/07/17(水) NY:AN:NY.AN
この場合の深さと幅って何になるの?
191180
垢版 |
2013/07/17(水) NY:AN:NY.AN
>>188
意味(=実質)は同じで構文(=見かけ)が違うだけ、いわゆる構文糖(syntax sugar)
2013/10/05(土) 20:39:57.04
joe armstrongのプログラミングerlangの8.11の練習問題で質問です。
一番目の問題の「spawn(Fun)をAnAtomとして登録する関数start(AnAtom, Fun)を書くという問題で、
2つのプロセスがstart/2を呼び出した場合もプログラムが正しく動作するようにすること。」と言う問題で以下のコードを書きました。

start(AnAtom, Fun) ->
undefined = whereis(AnAtom), %% ここのコードはまずい?
register(AnAtom, spawn(Fun)).

erlangの並行処理のモデルがよくわかっていないのですが、
上のコードのコメントが書かれているところででプロセスAがwhereis(AnAtom)をundefinedに評価した後に別のプロセスBに切り替わってwhereis(AnAtom)をまた
undefinedに評価することはありえるのでしょうか?それともノンプリエンティブマルチタスクに似た並行処理モデルなのでしょうか?

こういうことに気にしないようにregisterを呼び出すプロセスを作って、
そのプロセスにregisterを呼び出すようにメッセージを送ったほうが良いのでしょうか?
2013/10/06(日) 07:33:08.12
      \                     /
       \                  /
         \               /
          \            /
            \         /
             \∧∧∧∧/
             <    俺 >
             < 予 し  >
             <    か >
─────────< 感 い >──────────
             <   な >      
             <  !!! い >       
             /∨∨∨∨\
            /         \
          /   ∧_∧     \
         /     (  ・ω・)      \
       /    _(__つ/ ̄ ̄ ̄/    \
      /        \/     /      \
2013/10/06(日) 08:06:02.97
(ここに一人いるんですが長いこと触ってないので答えられないんです)
2013/10/06(日) 09:38:30.84
>>192

CPU(core)が複数あると、完全に同時並行で動くと思う。
問題は
2つのプロセスが同時に呼んだ場合も正しく動くこと。
そのような場合、片方のプロセスは成功、もう一方は失敗を保証すること
で、spawnされたプロセスをどうするか書かれていないし、
true = register(AnAtom,spawn(Fun)).
で良いような気がする。

2版出たのかな?
2013/10/06(日) 23:31:35.79
Erlang学習してて詰んでる人は、「コンピュータプログラミングの概念・技法・モデル」(略称CTMCP)を読むと変化が起きると思う。
197192
垢版 |
2013/10/07(月) 20:02:16.34
>>195
そういう解釈でいいんですかね?

>>2版出たのかな?
部屋から発掘した1版1刷を読んでます。
198195
垢版 |
2013/10/10(木) 00:38:15.06
>>197
spawnされたほうの始末を考えないといけないことに気付かせる問題と思った。
完全同時並行で動くので、少なくとも8章までの内容だと、プロセスが2つ起動されてしまうのは
回避できないように思う。流し読んだだけなので違ったらごめん。
現実的にはregister成功したらメッセージを投げて、spawnされたほうはそのメッセージを待って
仕事をするのかな?
199デフォルトの名無しさん
垢版 |
2013/10/10(木) 05:51:00.14
>>198
トンチンカンな事を言ってたらゴメン。

UNIXのプロセス生成とごっちゃにしてない?
2013/10/10(木) 21:38:10.40
process_flag(priority)の説明に preemptive scheduling と書かれていて、erlang(beam)仮想機械の
命令数で切り替えを行うのだったと思う。
2つのプロセスでほぼ同時に register(atom,spawn(fun)) を実行するとして、先のプロセスの
spawn(fun) から戻ったところでプロセス切り替えが起きて後のプロセスが動くと、spawnされて
registerしていないプロセスが2つ存在する状況を回避できない。
registerできるのは1つだけなので、どちらかのプロセスを始末しないといけない。

と書いていて気付いたけど、>>192 のFunを直接spawnするのをやめて、spawnされたらself()を
registerして、Funを呼ぶようにすれば良いのかな?

「完全同時並行」は話をメンドクサくしてしまったかもしれない。ごめん。
201192
垢版 |
2013/10/10(木) 22:37:11.82
register自体は排他制御されているだろうから、このコードでどうでしょうかね?
start(AnAtom, Fun) ->
Pid = spawn( fun() ->
receive
run -> Fun();
die -> void
end
end),
M = case register(AnAtom, Pid) of
true ->
run;
_ ->
die
end,
Pid ! M.
202192
垢版 |
2013/10/10(木) 23:09:45.48
200さんが言ってるのはこういうコードですか?
start2(AnAtom, Fun) ->
spawn(fun() ->
%% AnAtomが登録済みの場合例外が発生して
%% プロセス内で例外をキャッチしないのでプロセスが死ぬ
register(AnAtom, self()),
Fun()
end),
true.
2013/10/10(木) 23:30:22.22
start(AnAtom, Fun) ->
Pid = spawn( fun() -> receive
run -> Fun();
die -> void
end
end),
try
register(AnAtom, Pid),
Pid ! run,
true
catch
error:badarg ->
Pid ! die,
error(badarg)
end.
204200
垢版 |
2013/10/12(土) 11:54:07.77
>>202
そんな感じ。
set_lock()で排他制御してしまうという案もあると思う。
元々の設問が中途半端なので、後は好みの問題かな?
2013/10/15(火) 12:12:27.04
erlangにcpanっぽいサイトやツールってありませんか?
206デフォルトの名無しさん
垢版 |
2013/10/15(火) 13:28:31.64
rebarとgithubですね
2013/10/15(火) 17:36:05.11
ありがとうございます。
ライブラリのインストールはrebarでできそうです。
ライブラリを探す場合は皆さんgoogleやなんかで"erlang hogehoge"のような感じで探してるんでしょうか?
2013/10/19(土) 23:08:56.20
CEAN ってのがあったと思うけど、無くなった?
2013/10/19(土) 23:27:02.14
あるけどサイト見たらサポートプラットフォームがR15Bまでだった
210デフォルトの名無しさん
垢版 |
2013/11/06(水) 08:05:57.09
erlangって他の言語を呼び出せる?
例えばCのライブラリとか。

あと、erlangでCのプログラムを起動してアクセスできる?
具体的には
Cで書いた状態ありのモジュールを起動して、
erlangがそのモジュールにデータ書き込んだり読み出したりするなんてこと
をしたいんだけど。
2013/11/06(水) 10:25:14.91
可能
212デフォルトの名無しさん
垢版 |
2013/11/06(水) 11:02:13.24
>>211

サンキュ


どうやるの?
ポインタ教えてもらえると助かる
2013/11/06(水) 12:54:45.77
ttps://www.google.co.jp/search?q=erlang+%E5%A4%96%E9%83%A8%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9
2013/11/06(水) 13:11:59.20
ほんまここの住人は菩薩様やで
215デフォルトの名無しさん
垢版 |
2013/11/07(木) 03:20:44.11
サンキュ

erlangからポートで接続してデータのやりとりすれば
いいわけね。
2014/02/04(火) 23:30:47.91
elixir の話題はここで書いてもいいですか
2014/02/04(火) 23:38:07.12
Dave Thomas が本出すとかで今後の火種になるかもしれないあの Elixir ですか(カンペガン見)
2014/02/05(水) 09:31:12.23
そうです.本読みやすくて結構いいですよ.
2014/02/06(木) 01:07:49.00
おお、紙本が出たら読んでみようかな
2014/02/19(水) 12:33:45.83
ErlangVMでプロセスが終わると確保していたメモリ領域を捨てるので
その部分ではGCが不要になる

ということを聞いて試そうと思ったのだけど
みんな試したことある?そのときどうやって試した?
2014/02/20(木) 13:03:11.91
What's App が話題になっているね
2014/02/22(土) 18:16:02.20
Erlangってネットワークサーバ書くのに特化してるだけでしょ、そりゃ流行らないよねぇ〜
そのお得意のネットワークサーバもGolangに喰われてお終いさぁ〜
え?パターンマッチング? はいはい最強、最強っと
2014/02/22(土) 18:21:49.54
でっていう
2014/02/22(土) 20:41:44.06
goってerlangと似たようなdomain対象にしてるのになんで別言語にしたんかなって考えたんだけど
文法とかが違うことも影響したんかなって思った
もしそうならgoはjvmでいうscalaみたいにerlang vmで実装して欲しかったな
それならerlangにもプラス効果ありそうだし
2014/02/22(土) 21:17:51.84
一緒に沈んでしまうじゃないですか
2014/02/23(日) 00:03:00.01
確認したいんだけど、erlang って流行ってないの?
うちの会社でずっと動いてんのコレなんだけど
2014/02/23(日) 02:49:52.19
Prologライクな文法って時点で、流行る気配がしない。使える代物ではあるけど。
2014/02/23(日) 10:33:14.51
cライクな文法とかクソだと思うけど
クソが普及しちゃったから他もそれっぽくなるのはしょうがないね
2014/02/23(日) 20:32:10.12
>>227
ICOT関係者が聞いたら泣くぞ
2014/02/23(日) 20:37:42.47
馴染みやすそうな構文のElixirを通してErlangのVMやOTPの良さを知った
2014/02/23(日) 23:02:25.74
erlang界のscalaことelixir
2014/02/24(月) 03:08:56.96
クソなのはいつだってそれを扱う人間の方だぜ
2014/03/14(金) 10:09:36.40ID:rb80PkEP
歌舞伎座.tech#3楽しかったですね
2014/03/20(木) 23:17:23.18ID:o5up30+T
elixirで文字コードの変換をしたいときってどうしたら良いですか?
2014/03/24(月) 19:53:48.35ID:HnFwnjk0
それ俺も知りたいやつや
2014/03/30(日) 21:24:38.61ID:a3+O6QeH
http://jungerl.sourceforge.net/ jugerlというパッケージの中にiconvがあるらしい
237デフォルトの名無しさん
垢版 |
2014/04/10(木) 18:13:10.93ID:rfz8xJ3G
17.0リリースおめ あげ

http://www.erlang.org/news/73
Erlang OTP 17.0 has been released

Written by Kenneth, 09 Apr 2014

Erlang/OTP 17.0 is a new major release with new features, characteristics improvements, as well as some minor incompatibilities. See the README file and the documentation for more details.

Some highlights of the release are:


Erlang/OTP has been ported to the realtime operating system OSE.
Maps, a new dictionary data type (experimental)
A more natural mapping from ASN.1 OCTET STRING and BIT STRING to Erlang types, and other ASN.1 improvements and optimizations
The {active, N} socket option for TCP, UDP, and SCTP
A new (optional) scheduler utilization balancing mechanism
Migration of memory carriers has been enabled by default on all ERTS internal memory allocators
Increased garbage collection tenure rate
Experimental "dirty schedulers" functionality
Funs can now be given names
Miscellaneous unicode support enhancements
A new version scheme for OTP its applications has been introduced
2014/04/22(火) 22:08:27.64ID:PAf5/uoA
Elixir0.13.0も出ました

http://elixir-lang.org/
Elixir v0.13.0 released, hex.pm and ElixirConf announced
2014/04/30(水) 21:26:49.02ID:CFD955T1
>238
えーいきなりErlang R17縛りだって...
2014/07/06(日) 16:17:21.27ID:YawUrWVk
「すごいErlangゆかいに学ぼう! 」という本が出版されました #すごいE本 - YAMAGUCHI::weblog
http://ymotongpoo.hatenablog.com/entry/2014/07/04/084516

すごいErlangゆかいに学ぼう! | オーム社eStore
http://estore.ohmsha.co.jp/titles/978427406912P

すごいErlangゆかいに学ぼう!: Fred Hebert, 山口 能迪: 本
http://www.amazon.co.jp/dp/4274069125
2014/07/06(日) 16:44:54.13ID:XWehaxkr
on lispみたいに、webで一回翻訳したものの更新&校正版だな。
http://www.ymotongpoo.com/works/lyse-ja/index.html
2014/07/06(日) 16:50:00.38ID:ZmPBc803
タイトルの略称のインパクトが足りない
すごいアーッ本にしよう
2014/07/06(日) 18:11:14.90ID:aspDWAp6
Erlangのvm(でいいのか?)とか、CSPとか凄い好みなのだけど、パターンマッチ系を多用するML系言語で挫折した僕はlfe(Lisp Flavoured Erlang)つかってしまいますです。
2014/08/02(土) 11:52:55.55ID:0zt4dTHD
もっといいやり方ないの?これ
ttp://ofmizno.blogspot.jp/2013/10/2013-10-18-erlang.html
2014/08/02(土) 12:03:44.71ID:gDjKnomp
馬鹿には無理
246デフォルトの名無しさん
垢版 |
2014/08/12(火) 16:47:35.08ID:IbGC0kFi
Erlangのマクロで、変数を動的かプリプロセスで生成できますか?
初心者ですが。文法は正しくない擬似コードを書きますが。
こういったXの書き換えはどうしたら出来ますか? 
事前か実行時にループ分を展開しとけば可能だと思うんですが。


X = []
foreach(List as v) {
X = fnct( X, v )
}
247デフォルトの名無しさん
垢版 |
2014/08/12(火) 17:24:41.51ID:IbGC0kFi
よりシンプルに、このような配列の添字みたいなことができたらいいんですが。


foreach( [1, 2, 3] as n) {
X[n+1] = fnct( X[n], n )
}
248246
垢版 |
2014/08/13(水) 00:35:57.34ID:o4SLtD2/
自己解決しました
2014/08/15(金) 09:50:53.52ID:kGUZHqxo
>>248
どう解決したのであろうか。
2014/09/12(金) 01:31:11.30ID:hatAVbzF
elixir1.0.0おめでとう
2014/10/30(木) 13:49:04.02ID:yqOSL7NP
歌舞伎座.tech#5「すごいErlangをゆかいに学ぶ会」
http://live.nicovideo.jp/watch/lv197716856

2014/10/30(木) 開場:18:57 開演:19:00
2014/10/30(木) 15:46:56.75ID:f9Cx3ene
thx!
2014/11/09(日) 14:01:43.32ID:VcMedQcJ
プログラミング言語がソフトウェアの品質に与える影響
http://developers.slashdot.jp/story/14/11/08/081210/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%8C%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%93%81%E8%B3%AA%E3%81%AB%E4%B8%8E%E3%81%88%E3
2014/12/14(日) 11:38:44.22ID:liUQicoz
JAのプログラミングErlangとすごいErlangってErlangを始めるならどっちがおすすめですか?
2014/12/20(土) 19:25:50.13ID:b+pAkNTW
戦闘機本読んでるけど思った以上にLispっぽい
特に[H l T]とか
2014/12/21(日) 21:04:28.44ID:eeSJE4Hw
すごいの方は翻訳家がネットで公開してるはずだからまずそっち見てみたら?
2015/02/04(水) 19:06:34.40ID:tjSlws+J
文字列処理がクソすぎてもう挫折したは
258デフォルトの名無しさん
垢版 |
2015/06/08(月) 23:39:53.11ID:JodU/eML
【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1433336300/
259デフォルトの名無しさん
垢版 |
2015/06/11(木) 20:05:55.72ID:ClVnABcE
>>258
これ面白そうだな
260デフォルトの名無しさん
垢版 |
2015/06/18(木) 14:11:00.00ID:EqdgCPQw
test
261デフォルトの名無しさん
垢版 |
2015/12/20(日) 15:49:17.63ID:8RLYRFXT
しいたけのにおいがする
262デフォルトの名無しさん
垢版 |
2016/01/13(水) 14:32:13.77ID:EwraTGVM
>>130
Elixirのことですねわかります
2016/01/13(水) 15:48:07.42ID:EwraTGVM
>>230
わかります
264デフォルトの名無しさん
垢版 |
2016/01/14(木) 13:18:41.31ID:MVoyv7BA
https://www.youtube.com/watch?v=xrIjfIjssLE#t=675s
11:15 〜
Try it,
you'll like it !!

わろす

gen_fsm とか触ってみて判ったよ。
本質的に VHDL とか Verilog とかと一緒なんだな。
そりゃゲームも作れるはずだは。 ω ω ω 。
2016/01/15(金) 09:54:14.99ID:NW8jpekK
binaryの最後の1バイトの値を取り出したいときって
<<N>> = binary_part(Binary, {byte_size(Binary), -1}).
より簡単な方法ってある?
2016/01/15(金) 16:05:36.74ID:jtH6/WEN
http://www.erlang.org/doc/efficiency_guide/commoncaveats.html

3.2 list_to_atom/1

Atoms are not garbage-collected. Once an atom is created, it is never removed.
The emulator terminates if the limit for the number of atoms (1,048,576 by default) is reached.

Therefore, converting arbitrary input strings to atoms can be dangerous in a system that runs continuously.
If only certain well-defined atoms are allowed as input, list_to_existing_atom/1 can be used to
to guard against a denial-of-service attack.
(All atoms that are allowed must have been created earlier, for example, by simply using all of them in a module and loading that module.)

Using list_to_atom/1 to construct an atom that is passed to apply/3 as follows,
is quite expensive and not recommended in time-critical code:

apply(list_to_atom("some_prefix"++Var), foo, Args)


こんな大事なことはもっと目立つところに書いておいてほしいぬ.
267デフォルトの名無しさん
垢版 |
2016/01/17(日) 10:43:55.92ID:TbH/Z5Ji
>>257
ram ファイルを [ram,raw,binary,write,read] で開いて
pwrite と pread で random access する方が
binary_part(Hoge, {Pos, Len}) するより便利というか速い気がするんだが
268デフォルトの名無しさん
垢版 |
2016/02/19(金) 14:04:23.44ID:hw/X0Y/j
http://www.tiobe.com/index.php/tiobe_index
2016/02/21(日) 15:09:02.94ID:zmvsu5mb
https://fa-works.com/blog/why-you-should-never-ever-ever-use-mongodb
270デフォルトの名無しさん
垢版 |
2016/06/23(木) 19:51:18.63ID:Z9WBmNB8
19.0リリースあげ
Erlang/OTP 19.0 has been released
http://www.erlang.org/news/105
2016/06/24(金) 00:03:58.12ID:t8u1m238
じゃあこれも

Elixir v1.3 released
http://elixir-lang.org/blog/2016/06/21/elixir-v1-3-0-released/

Erlang VM上で動作する関数型言語「Elixir 1.3」リリース、ビルドツールやテストフレームワークを強化
https://osdn.jp/magazine/16/06/23/190000
272デフォルトの名無しさん
垢版 |
2016/07/01(金) 10:59:04.63ID:wNtMwO0s
プログラミングElixir
http://shop.ohmsha.co.jp/smartphone/detail.html?id=000000004675
商品詳細情報
Elixir(エリクサー)は、並行処理を得意とするプログラミング言語ErlangのVM(エンジン部分)を基盤とし、
Erlangよりもなじみやすい文法を採用したプログラミング言語です。
本書は、世界的なRubyプログラマであるDave Thomas氏が書いた、プログラミング言語Elixirの本格的解説書、“Programming Elixir” (Pragmatic Bookshelf, 2014) の翻訳書です。
通常のプログラミングから、並行処理、さらなる応用へと順を追って進む構成になっています。
本書を読むことで、Elixirらしいプログラミングを学ぶことができます。
第1章 赤いピルをとれ
第1部 伝統的なプログラミング
第2章 パターンマッチング
第3章 不変性
第4章 Elixir基礎
第5章 匿名関数
第6章 モジュールと名前付き関数
第7章 リストと再帰
第8章 マップ、キーワードリスト、セット、構造体
第9章 寄り道:型とは何か?
第10章 コレクションの処理 - EnumとStream 第11章 文字列とバイナリ
第12章 制御フロー
第13章 プロジェクトを構成する
第2部 並行プログラミング
第14章 複数のプロセスを使う
第15章 ノード - 分散システムの要
第16章 OTP:サーバ
第17章 OTP:スーパーバイザ
第18章 OTP:アプリケーション
第19章 タスクとエージェント
第3部 より高度なElixir
第20章 マクロとコードの評価
第21章 モジュールのリンク:ビヘイビアとuse
第22章 プロトコル - ポリモルフィック関数 第23章 かっこいい機能いろいろ
273デフォルトの名無しさん
垢版 |
2017/04/02(日) 19:07:17.00ID:fP8TJ4RC
http://news.mynavi.jp/news/2017/03/30/133/
Erland
274デフォルトの名無しさん
垢版 |
2017/07/20(木) 19:17:50.01ID:7mH9PEZK
jupyter に Erlang が
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況