【関数】Erlang Part 2【エリクソン】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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
0003デフォルトの名無しさん
垢版 |
2010/07/20(火) 17:19:32
なんだよもうErlang下火だから翻訳版でないだろうと思って原書買っちゃったよ・・・

いちおつ
0009デフォルトの名無しさん
垢版 |
2010/07/22(木) 00:35:18
これって、HaskellのGHCみたいに強力なコンパイラが出現すればもっと流行るんだろうか…
0012デフォルトの名無しさん
垢版 |
2010/07/24(土) 17:08:16
>>2買ってきたら煽り文に、「マルチコアの最適な利用という観点での注目度も高く」とあったけど、どうなん?
あまり聞かない気が。。。。
0016デフォルトの名無しさん
垢版 |
2010/07/28(水) 01:01:24
秋葉のヨド売り切れてた
0017デフォルトの名無しさん
垢版 |
2010/07/28(水) 23:33:49
ちょっと読んだけど、haskell本に比べたら、全然
関数型言語に関する記述は少ないな。
実用的かも
0024デフォルトの名無しさん
垢版 |
2010/08/02(月) 21:53:43
Erlangの無名関数定義で
F = fun(X) -> fun(X-1).
みたいな記述は出来ないの?出来損ないでさーせん
0026デフォルトの名無しさん
垢版 |
2010/08/08(日) 18:45:08
Erlangプログラミング P140、5.4.2節イベントハンドラのコード例で、

pad([M1]) -> [$0,M1];

なる一文が入っているけれど、$0はなんで必要なの?
0028デフォルトの名無しさん
垢版 |
2010/08/08(日) 19:11:27
>>26
Erlangを忘れ果てた漏れが嫌がらせで答えると
文字列が1文字だけだった場合にゼロパディングして2文字にしてるんだよ

たとえば 18:45:8 を 18:45:08 にするとか
0029デフォルトの名無しさん
垢版 |
2010/08/08(日) 20:32:08
>>28
Thx.
実際試してみてゼロ埋めらしいとは分かったけど、どんな書式文法か?でした。
月・日は挙げてもらった通りだけど、年は最初から"2010"だから何も起こらない。
変数を1文字しかないと仮定して、$0を変数に添える事を+1文字分確保すると考えるのでしょうかね。
0030デフォルトの名無しさん
垢版 |
2010/08/08(日) 21:41:57
>>29
Erlangの文字列と関数のパターンマッチングがどんなものかは理解してる?
飛ばし読みしてるんなら読み直したほうがいいと思う
003129
垢版 |
2010/08/08(日) 22:03:18
飛ばし読んではいないけど(忘れているのかもしれない)、そういう問題なんですか?
io:formatがどう表示してくれるかの問題だと思っていたのですが
0034デフォルトの名無しさん
垢版 |
2010/08/29(日) 19:02:46
いつも実行ファイルにこだわってる人いるけど、この言語でWindows上で動いてもうれしくなくない?
0035デフォルトの名無しさん
垢版 |
2010/08/29(日) 19:22:43
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究
0036デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:10:49
>>34
いや、うれしいよ。
バグでプロセスがダウンすることを前提にした言語って他に無いからね。
こんなに安全にプロセスが扱える言語って他にある?
逆に嬉しくないと思う理由が知りたい。
0037デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:17:02
exeファイルにしたい理由:
1. ワンファイルアプリ最高
2. windowsの慣習的にexeファイルがないと、erlangに詳しくない人は実行方法がすぐにわからない。
また、バッチファイルだとコマンドラインの印象があって、詳しくない人は不安を感じる。
3. インストールを前提とする以外の実行方法を提供する自由が欲しい
0038デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:49:49
>>37
ShllExecute叩くexe作るだけでいいんじゃないの。
Erlang側で準備する必要があるものとは正直思えない。
0042デフォルトの名無しさん
垢版 |
2010/08/29(日) 21:48:36
そこまでいけるって思うなら自分で実装してみてはどうだろうか?
Rubyとかの他の言語でもあったよね。そういうの。Exerbか。
ある程度動くところまでやれば未踏で1年分の金くれるかもよ。

あとWindowsの場合、プロセスじゃなくてスレッドでどうこうしたほうがパフォーマンス出ると思うんだよ。
Chromeぐらいじゃないか?普通はスレッドであるべきところを意識的にプロセスにしたアプリケーションは。
0050デフォルトの名無しさん
垢版 |
2010/08/30(月) 00:01:42
安全な言語を活かすなら土台も堅牢でないと
土台がやわなら安全な言語も猫に小判、豚に真珠
0051デフォルトの名無しさん
垢版 |
2010/08/30(月) 04:20:23
>>50
それを言うなら砂上の楼閣でしょう。
猫に小判と豚に真珠は、本人が価値を理解できないというたとえです。
0052デフォルトの名無しさん
垢版 |
2010/08/30(月) 17:41:07
>>50
LinuxもMacもWindowsも堅牢性は大して変わらん。
微々たる差だよ。
それにCでやろうがJavaでやろうがErlangでやろうがエラー対策はちゃんとやるでしょうが。
0059デフォルトの名無しさん
垢版 |
2010/09/01(水) 00:51:35
そもそもErlangのプロセスはVMが仕切ってるので
ネイティブで動く.exe実行ファイルとは相容れないだろう
もしやるとしてもVMを包んだ実行ファイルで配布とかになる
0060デフォルトの名無しさん
垢版 |
2010/09/01(水) 09:29:33
学習・開発環境としてのWindowsはあり → EXE不要
運用環境としてのWindowsはなし → EXE不要
0061デフォルトの名無しさん
垢版 |
2010/09/01(水) 15:23:57
ErlangSDLでゲーム作った → EXE必要

最近の『関数型言語でマルチスレッドゲーム製作』ブームで
ゲームに適してるって騙されてゲーム作った俺に誰でもいいから土下座して謝ってください。
0063デフォルトの名無しさん
垢版 |
2010/09/01(水) 15:45:47
>>61
ちょっとまて、関数型言語がゲームに適しているってどこに書いてあったんだ?
あとerlangは関数型言語じゃなくてプロセス指向言語だぞ
0065デフォルトの名無しさん
垢版 |
2010/09/01(水) 16:23:19
>>63
プロセス指向ってどんだけみみっちいな区分けすんだよw
どう考えてもErlangは関数型だろ。

ttp://game.watch.impress.co.jp/docs/20080911/epic.htm
PS4やらXBOX720やらになったら関数型言語が主役になるんだよ。
それで関数型言語マンセーなんだよ今は。
0066デフォルトの名無しさん
垢版 |
2010/09/01(水) 16:26:54
>>65
それには理由があって、
基礎理論が何かで分けられるべきだと思うんだよ。
HaskellやMLやLispなどはlambda-calculusを基礎理論としているのに対して、
Erlangやgoなどはpi-calculusないしはCSPを基礎理論にしている。
だから関数型言語というよりもプロセス指向言語と呼んだほうが分類としては正しいと思うんだ。
0067デフォルトの名無しさん
垢版 |
2010/09/01(水) 17:50:31
で、結局EXEの作り方知ってる人いたら容量がどんだけ大きくなってもいいので教えてください。
0071デフォルトの名無しさん
垢版 |
2010/09/01(水) 23:15:59
Wings3Dだけexeでずるいぃ!
Sculptrisの登場で見放されちゃったんだから
こんな使えない3Dモデラー作ってないで、
素直にErlangの実行ファイル作成ソフト作ってくれよん!

って誰かWings3Dの作者に言ってよ英語わからないから!
0072デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:16:10
>>66
基礎理論で分類するなら、ラムダ計算をベースに構文糖を被せた
JavaScript/Smalltalk/Rubyあたりも関数型言語になるんか?
また、CSPを基礎理論とするOccamやGHC(KL1)等も
プロセス指向言語と呼んだほうが正しい分類なのか?

普通に(常識的に)、JavaScript/Smalltalk/Rubyは(関数型機構も使える)
オブジェクト指向言語でいいし、Occamは手続き型言語、
GHCは並列論理型言語でいいと思う。同様にErlangも関数型言語だね。

>>65
言っている事はアレだがw、紹介してくれたリンク先の記事は面白かった。
ただし、その記事(ゲームと超並列化)が対象としているのは
メモリ共有による「密結合型」並列計算だよ。
Erlangは相互リンク(たとえばネットワーク)による「粗結合型」並列計算、
あるいは「分散型」並列計算だから、記事にあるようなリアルタイム
3Dレンダリングを生かしたゲーム開発には向いていないと思われ。
0074デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:22:34
>>72
全く見当違い。

> 基礎理論で分類するなら、ラムダ計算をベースに構文糖を被せた
> JavaScript/Smalltalk/Rubyあたりも関数型言語になるんか?

完全な手続き型言語だろ。

> また、CSPを基礎理論とするOccamやGHC(KL1)等も
> プロセス指向言語と呼んだほうが正しい分類なのか?

そうだよ。

関数型言語はシーングラフベースのグラフィックスなら強いパワーを発揮しそうだ。
0075デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:33:01
>>73
より正確にはオブジェクト指向手続き型言語だろうね。
オブジェクト指向というのは大きな概念(パラダイム)だから、計算モデルと両立する。
だからオブジェクト指向関数型言語やオブジェクト指向並列論理言語も存在しうる。

0077デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:37:36
>>75に自己レス。
オブジェクト指向並列論理言語ではなくて、オブジェクト指向論理言語に訂正。

ちなみに例を挙げれば、
・オブジェクト指向関数型言語:OCaml
・オブジェクト指向並列論理言語:ESP
になるけど、普通はそれぞれ関数型言語、論理型言語と呼ばれているし、それで正しい。
0078デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:41:28
>>75
君がオブジェクト信者だってことはわかったけど、
オブジェクト指向は指向と呼ばれることからわかるようにプログラミングスタイルを意味する言葉だよね。
0079デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:43:40
関数型言語だろうと並列論理言語だろうとプロセス指向言語だろうとどっちでもいいだろ。
どうせやることは一緒なんだ。
0080デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:45:17
>>76
計算モデルとしての(狭義の)オブジェクト指向の基礎理論は「アクター理論」と呼ばれる。
これは作用型計算モデル(関数型言語)と命令型計算モデル(手続き型言語)を統ーした
計算モデル。このモデルでは、すべての要素(オブジェクト)がアクターになる。たとえば
関数は不変アクター(imutable actor)で、手続きは可変アクター(mutable actor)になる。
0081デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:46:44
俺が聞いたところによるとオブジェクト指向の完全な理論化は出来ていないとの事だったけどなぁ。
0082デフォルトの名無しさん
垢版 |
2010/09/13(月) 18:58:40
>>81
その通り。だから>>80では「狭義の」と書いた。例えば「継承(inheritance)」ひとつを
とっても、静的言語ですらその形式的定義は完成していない(はず)。だから、たとえば
OCamlのオブジェクト指向は不完全なので(型推論が破綻しているので)、嫌う人は多い。

ま、いいかげんオブジェクト指向はErlangとはスレ違いの話題だから、これで終わりにする。
Erlangにおける並行オブジェクト指向プログラミングなんて話題になれば、また顔を出すよ。
0084デフォルトの名無しさん
垢版 |
2010/09/16(木) 06:37:32
>>71
Wings3Dソースみてみたけど、werl起動するだけみたいよ?
インストールするとErlangのディレクトリ構造でライブラリ(**/ebin/*.beam)があるし。
exeは出来なくても良いけど、ソース無し(*.beamだけ)の実行環境と、ライブラリ集めて
インストールパッケージ作る、簡単な方法はほしいと思う。
0086デフォルトの名無しさん
垢版 |
2010/11/03(水) 05:07:20
このスレまだあったのか
0087デフォルトの名無しさん
垢版 |
2010/11/04(木) 16:44:34
>>84
バッチファイルをEXE化して実行ファイル作ろうと思っても、
OTPからerl.exeとかerlc.exeとか引っ張り出すと動かなくなる。
なんでWings3Dは動いてんだよぉ…
0088デフォルトの名無しさん
垢版 |
2010/11/15(月) 17:07:33
一時期はerlang便利って思ってたけど、最近では普通にCだな・・・
スタイルさえ確立すればCでもErlangでも同じ。
0090デフォルトの名無しさん
垢版 |
2010/12/27(月) 06:37:49
741 デフォルトの名無しさん [sage] 2010/12/25(土) 00:53:53 ID: Be:
    erlangがほとんど話題に上がらないのはなぜ?
0093デフォルトの名無しさん
垢版 |
2011/04/07(木) 09:11:31.10
http://www.infoq.com/jp/news/2011/04/erlang-copied-jvm-and-scala

Erlang を共同で開発した Joe Armstrong と Robert Virding 両氏が,Erlang が Java から多大な着想を得たことを認めている。

ErlangFactory 2011 SF で行われたインタビューで両氏は,Erlang では「プロセス」と呼んでいるものを作る上で,
Scala の Actor が大きな影響を与えているという,以前からあった噂をついに
肯定したのだ。さらに Erlang の VM が,かの有名な Java 仮想マシン (Java Virtual
Machine,JVM) のクローン同然のものであることも告白した。
0094デフォルトの名無しさん
垢版 |
2011/04/07(木) 09:18:19.82
>>93
うわ、これはショックだ
そうじゃないかと思ってはいたけど両御大の言葉ともなると
つらいものがあるな…漏れはArmstrong本で勉強したわけだし
きっと何か事情があるんだと思うな…そうであってほしい
0095デフォルトの名無しさん
垢版 |
2011/04/07(木) 09:30:56.90
>>94
>かの有名な JVM に回帰すること,の2点を約束している。
むしろこのあたりでちょっとうれしかったり
0102デフォルトの名無しさん
垢版 |
2011/04/07(木) 22:44:01.66
このスレこんな人いたのかw

Erlang再入門開始
カンマとセミコロンとピリオドの使い分けがようやく見えてきた
0105デフォルトの名無しさん
垢版 |
2011/04/10(日) 00:55:39.83
これソースからインストールすると死ぬほど時間かかるんだけどなんとかなんないの
0109デフォルトの名無しさん
垢版 |
2011/04/10(日) 23:50:53.53
気にしない
0111デフォルトの名無しさん
垢版 |
2011/04/11(月) 13:12:35.07
>>107
同じ構成のインスタンス借りてるんだろ?
ならコンパイルした結果を丸ごともってきゃいいじゃねぇか
0112デフォルトの名無しさん
垢版 |
2011/05/10(火) 20:00:37.36
ですな。
checkinstallでrpm化してもいいし。
最近のcheckinstallがどうも不具合ぶくみだが、、
0114天使 ◆uL5esZLBSE
垢版 |
2011/07/04(月) 11:22:19.64
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ

ゴミが口を開くな
0115天使 ◆uL5esZLBSE
垢版 |
2011/07/06(水) 07:44:35.82
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
ゴミグラマじゃねーか
0116デフォルトの名無しさん
垢版 |
2011/11/30(水) 00:33:25.95
PhalangerやBoo、IKVMみたいな.NET上で動くErlang実装ってないの?
0118デフォルトの名無しさん
垢版 |
2011/11/30(水) 21:44:56.56
ちょっと聞きたいんだけど、入力される文字列長が不定でCRとかLFで終端されるとは限らない上に
eofにも到達しない場合、erlangでどうやって書いたらいいんだろう。

file:read(IoDevice, Number)だとNumber分だけ文字が入力されるまで待ってしまうわけで、
つまりシステムコールとしてのread(2)に近い動作をしてほしい。
流石に1文字づつ読みに行くみたいな頭悪いことしたくないし、Cとかで書いてラップするのが安定?
0119デフォルトの名無しさん
垢版 |
2011/12/12(月) 17:39:24.26
PythonとかRubyとか使ったけどやっぱりErlangのバイナリ処理とパターンマッチは最強だわ。
文字列の処理が楽だから、プログラムの翻訳機がかなり作りやすい。
で、他にもっと使いやすい言語ある?
0121デフォルトの名無しさん
垢版 |
2012/01/27(金) 06:04:19.72
ようするにやっぱ最強だわ
0122デフォルトの名無しさん
垢版 |
2012/02/24(金) 03:36:57.12
How To Become A Hacker
http://cruel.org/freeware/hacker.html

もしコンピュータ言語をなにも知らないなら、まず Python から始めることを
おすすめします。設計がきれいだし、ドキュメントもしっかりしているし、
初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、
おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん
対応しています。

Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしい
ですが、できるコードは Python より高速です。二番目の言語としてはとても
すぐれていると思います。

本気でプログラミングをするなら、C を勉強するしかありません。これはUnix の
中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、
もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に
勉強しようとするのには向いた代物ではありません。
0123デフォルトの名無しさん
垢版 |
2012/02/24(金) 08:47:40.07
C++でプログラム書くのを覚えるとCでプログラム書くのは無理
Cを読むくらいならできるけど、Cで書くなんてバカらしくてやってらんない
0127デフォルトの名無しさん
垢版 |
2012/03/02(金) 15:27:53.31
>>123
それCommonLispで以下略とか
Erlangで以下略とか
なんでもよくね?

Cの良いところって組み込みで使ってもリソース食わないとか
ハードウェアに密接する処理書いてもOKとかそのくらいしかわからん(ここはC++でもいいんだが)
0128デフォルトの名無しさん
垢版 |
2012/04/29(日) 13:59:15.71
Erlangプログラミングを70ページ読んでやって「これ->を:-にすればPrologじゃん」と気付いた
0129デフォルトの名無しさん
垢版 |
2012/04/29(日) 14:13:00.69
Prologみたいな双方向のユニフィケーションとか、同じ変数名を使ったパターンとか、あるの?
0130デフォルトの名無しさん
垢版 |
2012/05/07(月) 17:57:49.82
Erlangもっと流行ってほしいなぁ。
ほかの言語やってるとやっぱりErlangのパターンマッチが最強過ぎていやになるわ。

初心者にとっつきやすいようにprint分を簡単にして、
プリコンパイラを簡単にして関数を全部publicアクセスにして、
レコードをクラスっぽい使い方できるようにすれば
ちょっとはとっつきやすくなるんじゃないかな。
0131デフォルトの名無しさん
垢版 |
2012/05/07(月) 20:40:16.21
標準入出力よりも数値計算が充実してくれれば
行列で検索してもキューの話ばっかり出てきて困る
0133デフォルトの名無しさん
垢版 |
2012/05/11(金) 01:23:00.97
C言語とかで関数の頭で引数の検査でassert使うけど、それをパターンマッチングでできるので楽
0135デフォルトの名無しさん
垢版 |
2012/05/13(日) 00:44:56.28
いくらググってもemacsモードのファイルがヒットしないのでしばらくあきらめてたら、配布物の中に入ってた
0136デフォルトの名無しさん
垢版 |
2012/09/01(土) 10:27:54.02
Erlang入門という中古書籍片手にErlangの勉強を始めましたが、
本に書いてある通り、
c(モジュール名).
とコマンドを実行しても、
モジュール名.bea#: error writing file
とエラーが出てコンパイルできません。

http://blog.overlasting.net/2007-05-09-1.html
のサイトを見て、c(sample).を実行しても
sample.bea#: error writing fileと表示されます。

Erlangはマイナー過ぎてググっても分かりません。
誰か助けてください…。
0137136
垢版 |
2012/09/01(土) 10:37:43.22
ようは、対話型のコマンドは実行できるが、コンパイルできないんです。
Windows7の64版を使っているのは関係ないだろうし、途方に暮れています。
もちろん作業フォルダにファイルは置いています。
0139デフォルトの名無しさん
垢版 |
2012/09/01(土) 11:37:37.91
>error writing file

英語はマイナーすぎてわからないということだな
さすが初心者は半端ないぜ
0140デフォルトの名無しさん
垢版 |
2012/09/01(土) 20:30:15.65
福沢諭吉「脱亜論」 1885年3月16日 時事新報

日本の不幸は中国と朝鮮だ。
この二国の人々も日本人と同じく漢字文化圏に属し、同じ古典を共有しているが、
もともと人種的に異なるのか、教育に差があるのか、 日本との精神的隔たりはあまりにも大きい。
地球規模で情報が行き来する時代にあって、近代文明や国際法について知りながら、
過去に拘り続ける中国・朝鮮の精神は千年前と違わない。
国際的な紛争の場面でも「悪いのはお前の方だ」と開き直って恥じることもない。
もはや、この二国が国際的な常識を身につけることを期待してはならない。
「東アジア共同体」の一員として その繁栄に与ってくれるなどという幻想は捨てるべきである。
日本は、大陸や半島との関係を絶ち、 欧米と共に進まなければならない。
ただ隣国だからという理由だけで特別な感情を持って接してはならない。
この二国に対しても、国際的な常識に従い、国際法に則って接すればよい。
悪友の悪事を見逃す者は、共に悪名を逃れ得ない。
私は気持ちにおいては「東アジア」の悪友と絶交するものである。

         _,,,,,,__  __,,,__
        ィjj)))))))))!!!!!彡ヽ,
      /ミ/         ,}彡ヘ
      |ミ{ -‐ ‐ ‐ ‐-  {三=|
      El==; ゚ ''==. |ミミ,|
        `レfォ、,〉 :rfォ.、,  !iル┤
.        { `¨ i ・、¨ ´  `{ゞ'} 支那、朝鮮とは
.        | '`!!^'ヽ     .「´  付き合うなと忠告しておいたのに。。。
        ! ,-ニ'¬-、  ,!|,_   
.        \´?`  / ∧ヘ、
         __/〉`ー ' ´ /  〉 \
     _, ィ´「∧     /  /    」¬ー- 、_
  -‐ ´  / /  ヽ、/    /     iヾ      ヽ
0141136
垢版 |
2012/09/02(日) 15:52:29.76
返信遅れてすみません。

>>138
それが原因でした。恥ずかしいです。
ありがとうございました。
0142デフォルトの名無しさん
垢版 |
2012/09/18(火) 13:23:04.15
Learn You Some Erlang for Great Good!
ttp://shop.oreilly.com/product/9781593274351.do

haskell本みたいに流行るかな
0148デフォルトの名無しさん
垢版 |
2012/10/05(金) 23:07:29.48
>>145
好意的に解釈すると、
Erlangは「並列(pallarel)」ではなくて「並行(concurrent)」に向いてる言語だ、
といいたんじゃね?
あと、ErlangのSMPサポートは2006年(R11B)からなので、マルチコアを
活かせるようになったのは結構最近。
0149デフォルトの名無しさん
垢版 |
2012/10/06(土) 22:10:16.70
> あと、ErlangのSMPサポートは2006年(R11B)からなので、マルチコアを
> 活かせるようになったのは結構最近。

そーだったのか、知らなかった。>>148は詳しいな。
マルチコアでerlangの時代が来ましたよ!っぽい売り出し方してたから、
昔からそういうつくりなのかと思ってた。

あと、erlangのプロセスって、カーネルスレッドともユーザレベルスレッドとも違って
erlangのランタイムで実現されているという説明をよく目にするんだけど、これってどゆこと?

erlangのランタイムはOSのスレッドを利用しないで、並列(parallel)な処理を実現しているということ?
そうだとすると、たとえば、C言語でもカーネルスレッドを使わずに並列(parallel)な処理を実現できる方法があるの?

0150デフォルトの名無しさん
垢版 |
2012/10/07(日) 03:45:41.74
       //
     /  /   バカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ 馬鹿には無理
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0151デフォルトの名無しさん
垢版 |
2012/10/07(日) 15:51:59.58
>>145
メッセージパッシング中心だから、並列実行の実効には向いているがプログラミングが難しい
その代わり分散処理に向いている
0153デフォルトの名無しさん
垢版 |
2012/10/25(木) 11:44:12.09
久しぶりに触ったけどどうしても変数名を小文字で書いてしまって困る
ElixirとかあるけどどうせならReiaに流行ってほしかったなあ
0154デフォルトの名無しさん
垢版 |
2013/02/10(日) 18:40:22.63
Parallella and Erlang: An Introduction
ttp://www.parallella.org/2013/02/04/parallella-and-erlang-an-introduction/

なんか面白そう
0155デフォルトの名無しさん
垢版 |
2013/02/16(土) 16:18:12.72
Erlangを勉強したいのですが2つ知りたいことがありまして
・Erlangプログラミング(動物)とプログラミングErlang(飛行機)のどちらがお勧めですか
・マシンにCPUコアがたくさんあったら、あるだけ使ってくれるのでしょうか?
暇だったら教えてください
0157デフォルトの名無しさん
垢版 |
2013/02/16(土) 18:21:05.54
>>155
他の言語でもオライリー派だったせいか、オライリーの方が分かりやすかった
ただ、最初から応用が頭にある場合は飛行機の方がいいかもしれない

ErlangのVMが用意するスケジューラの数はマシンについてるコア数と同じだけど、その割り当てが1対1でマシンについてるコアを使うとは限らない
0158デフォルトの名無しさん
垢版 |
2013/02/16(土) 20:05:23.21
>>157
せっかくなので飛行機の方を買ってみようと思います
ErlangとしてはCPUを使うように努力してくれるみたいで安心しました

教えていただきありがとうございます
0159デフォルトの名無しさん
垢版 |
2013/02/16(土) 20:27:19.21
>>158
その本達は両方持ってて飛行機の方を先に読んでいたんですけど、動物本は文章が例によって長くて途中で投げましたw
結構昔の話なのでもう忘れてしまって印象だけなんですけど、多分そっちで正解です。

まあ気が乗ってくれば、入門だけ本に助けてもらって後はいくらでもネットで調べられますからね。
0160デフォルトの名無しさん
垢版 |
2013/02/23(土) 17:36:14.77
ところでErlangでキラーアプリてなんかないんですか?
特徴いかしたソフトあればもっと流行ると思いんだけど
0163デフォルトの名無しさん
垢版 |
2013/03/22(金) 01:49:31.43
HBase/HadoopやCassandraの中身をみてうんざりして
分散システムの構築に特化していると聞いて
RiakやHibariとかに密かに期待してるんですが、
これらってちゃんときちんと作られてます?
0166デフォルトの名無しさん
垢版 |
2013/03/22(金) 23:34:29.56
>>164
(Cassandraはちらっと見た程度だけど)
大局的には凡人には及びも付かないロジックなんだろうけど
道具レベル的にJavaに対する理解が稚拙、特にマルチスレッド関係
バグにバグを重ねていてもはや修正不可能。なんで動いているように見えるのか不思議
JIRAの手ごたえだと、中の人に分かってない人が混じっていて、今後もバグを積み重ねていくものと思われ
なんで地盤の部分をちゃんと勉強しないんだろ。まさに砂上の楼閣
0167デフォルトの名無しさん
垢版 |
2013/03/23(土) 08:00:46.09
>>166
そっか。うちなんかはあまり考えずにCDHのHBaseをインストールして運用しているだけの
ユーザーだから、あまり実装の稚拙さとかは考えたことが無かった。

ただRiak等が良いのですぐに乗り換えられるかと問われれば、うちの用途から考えると無理
だなとは思う。Javaで書かれた分析処理の並列実行が一番の用途でレンジスキャンが主なので
やはりHBaseが一番はまるんだよね。
データモデルも違うし、結局のところ用途から選ぶのが最初じゃないのかな。
0168デフォルトの名無しさん
垢版 |
2013/03/23(土) 18:38:28.24
http://hypertable.com/why_hypertable/hypertable_vs_hbase_2/
BigTableクローンとしては、HbaseのほかにHyperTableってのもあるけど、
C++で実装されているしAPIに互換性があるわけではなかったと思う。

Erlang/OTP使うと並列プロセスやプロセス監視などの仕組みが整ってるし
ディスクアクセスもETSに集中させれば管理し易いので、実装レベルを保証しやすいと思う。
http://www.erlang.org/doc/man/ets.html
http://www.aosabook.org/en/riak.html
0173デフォルトの名無しさん
垢版 |
2013/04/06(土) 03:31:03.27
joearms.github.com/2013/04/05/programming-erlang-2nd-edition.html
どうやら最近の流れに反映させるのが主な目的なのかな
これは初学者がステップアップしやすくなりそうだし
初版を持ってる人も最近の動向が掴めていいかもしれないね
0174デフォルトの名無しさん
垢版 |
2013/04/24(水) 21:25:43.67
escriptでプログラム動かすときmain/1のアリティを使う場合、main([Arg])な感じに書かないと
思ったように動かなかったんだけどアリティを[]で囲むのってescriptで動かす場合だけなの?
0175デフォルトの名無しさん
垢版 |
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
0177デフォルトの名無しさん
垢版 |
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行がなんでこんな条件書くだけで
プログラムが動作するのかが納得がいかないのは自分だけ?
0180デフォルトの名無しさん
垢版 |
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へ書き換えられた(改悪された?)が、
上記のリスト内包表記の書き直しを含むいくつかの基礎的な事柄が削られているので注意要
0181デフォルトの名無しさん
垢版 |
2013/07/16(火) NY:AN:NY.AN
バックトラックなの?
A, B, C それぞれについて、1 から N の全組み合わせだと思ってたけど。
0182デフォルトの名無しさん
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>180
へー
参考になった
0183180
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>181
いくつかの規則に従って、内包表記をmap/filter/concatから構成される一般的な式へ
書き換える(変換する/翻訳する)手法だから、Prologのバックトラックとはまったく違う
詳しくは>>180の書籍を参照

Erlangのオリジナルは論理型言語から出発しているが、
その言語とは(Concurrent PrologやGHCといった)並列論理型言語のことであり、
(いわゆるPrologと呼ばれる)逐次論理型言語が持つバックトラック機能は失われている
だから、逐次Prologに関する知識の多くはErlangでは役に立たないと考えた方がいい
0184177
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>180
最初の3行で1からNまでのリスト3つ作って勝手に総当りでもやってんのかと
思ってましたけどそんな機能あったんですね。
とりあえずバックトラックについてはググって
本は図書館に初版あればいいけどとりあえず探してみます。
0187180
垢版 |
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や上記の書籍になる
0188デフォルトの名無しさん
垢版 |
2013/07/16(火) NY:AN:NY.AN
難しい用語はすっ飛ばして、総当りとやってる事は何か違うの?見かけ上じゃなくて実質的に
0191180
垢版 |
2013/07/17(水) NY:AN:NY.AN
>>188
意味(=実質)は同じで構文(=見かけ)が違うだけ、いわゆる構文糖(syntax sugar)
0192デフォルトの名無しさん
垢版 |
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を呼び出すようにメッセージを送ったほうが良いのでしょうか?
0193デフォルトの名無しさん
垢版 |
2013/10/06(日) 07:33:08.12
      \                     /
       \                  /
         \               /
          \            /
            \         /
             \∧∧∧∧/
             <    俺 >
             < 予 し  >
             <    か >
─────────< 感 い >──────────
             <   な >      
             <  !!! い >       
             /∨∨∨∨\
            /         \
          /   ∧_∧     \
         /     (  ・ω・)      \
       /    _(__つ/ ̄ ̄ ̄/    \
      /        \/     /      \
0195デフォルトの名無しさん
垢版 |
2013/10/06(日) 09:38:30.84
>>192

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

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

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

UNIXのプロセス生成とごっちゃにしてない?
0200デフォルトの名無しさん
垢版 |
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を呼ぶようにすれば良いのかな?

「完全同時並行」は話をメンドクサくしてしまったかもしれない。ごめん。
0201192
垢版 |
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.
0202192
垢版 |
2013/10/10(木) 23:09:45.48
200さんが言ってるのはこういうコードですか?
start2(AnAtom, Fun) ->
spawn(fun() ->
%% AnAtomが登録済みの場合例外が発生して
%% プロセス内で例外をキャッチしないのでプロセスが死ぬ
register(AnAtom, self()),
Fun()
end),
true.
0203デフォルトの名無しさん
垢版 |
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.
0204200
垢版 |
2013/10/12(土) 11:54:07.77
>>202
そんな感じ。
set_lock()で排他制御してしまうという案もあると思う。
元々の設問が中途半端なので、後は好みの問題かな?
0206デフォルトの名無しさん
垢版 |
2013/10/15(火) 13:28:31.64
rebarとgithubですね
0207デフォルトの名無しさん
垢版 |
2013/10/15(火) 17:36:05.11
ありがとうございます。
ライブラリのインストールはrebarでできそうです。
ライブラリを探す場合は皆さんgoogleやなんかで"erlang hogehoge"のような感じで探してるんでしょうか?
0210デフォルトの名無しさん
垢版 |
2013/11/06(水) 08:05:57.09
erlangって他の言語を呼び出せる?
例えばCのライブラリとか。

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

サンキュ


どうやるの?
ポインタ教えてもらえると助かる
0215デフォルトの名無しさん
垢版 |
2013/11/07(木) 03:20:44.11
サンキュ

erlangからポートで接続してデータのやりとりすれば
いいわけね。
0217デフォルトの名無しさん
垢版 |
2014/02/04(火) 23:38:07.12
Dave Thomas が本出すとかで今後の火種になるかもしれないあの Elixir ですか(カンペガン見)
0220デフォルトの名無しさん
垢版 |
2014/02/19(水) 12:33:45.83
ErlangVMでプロセスが終わると確保していたメモリ領域を捨てるので
その部分ではGCが不要になる

ということを聞いて試そうと思ったのだけど
みんな試したことある?そのときどうやって試した?
0222デフォルトの名無しさん
垢版 |
2014/02/22(土) 18:16:02.20
Erlangってネットワークサーバ書くのに特化してるだけでしょ、そりゃ流行らないよねぇ〜
そのお得意のネットワークサーバもGolangに喰われてお終いさぁ〜
え?パターンマッチング? はいはい最強、最強っと
0224デフォルトの名無しさん
垢版 |
2014/02/22(土) 20:41:44.06
goってerlangと似たようなdomain対象にしてるのになんで別言語にしたんかなって考えたんだけど
文法とかが違うことも影響したんかなって思った
もしそうならgoはjvmでいうscalaみたいにerlang vmで実装して欲しかったな
それならerlangにもプラス効果ありそうだし
0226デフォルトの名無しさん
垢版 |
2014/02/23(日) 00:03:00.01
確認したいんだけど、erlang って流行ってないの?
うちの会社でずっと動いてんのコレなんだけど
0228デフォルトの名無しさん
垢版 |
2014/02/23(日) 10:33:14.51
cライクな文法とかクソだと思うけど
クソが普及しちゃったから他もそれっぽくなるのはしょうがないね
0237デフォルトの名無しさん
垢版 |
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
0243デフォルトの名無しさん
垢版 |
2014/07/06(日) 18:11:14.90ID:aspDWAp6
Erlangのvm(でいいのか?)とか、CSPとか凄い好みなのだけど、パターンマッチ系を多用するML系言語で挫折した僕はlfe(Lisp Flavoured Erlang)つかってしまいますです。
0246デフォルトの名無しさん
垢版 |
2014/08/12(火) 16:47:35.08ID:IbGC0kFi
Erlangのマクロで、変数を動的かプリプロセスで生成できますか?
初心者ですが。文法は正しくない擬似コードを書きますが。
こういったXの書き換えはどうしたら出来ますか? 
事前か実行時にループ分を展開しとけば可能だと思うんですが。


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


foreach( [1, 2, 3] as n) {
X[n+1] = fnct( X[n], n )
}
0248246
垢版 |
2014/08/13(水) 00:35:57.34ID:o4SLtD2/
自己解決しました
0256デフォルトの名無しさん
垢版 |
2014/12/21(日) 21:04:28.44ID:eeSJE4Hw
すごいの方は翻訳家がネットで公開してるはずだからまずそっち見てみたら?
0259デフォルトの名無しさん
垢版 |
2015/06/11(木) 20:05:55.72ID:ClVnABcE
>>258
これ面白そうだな
0260デフォルトの名無しさん
垢版 |
2015/06/18(木) 14:11:00.00ID:EqdgCPQw
test
0261デフォルトの名無しさん
垢版 |
2015/12/20(日) 15:49:17.63ID:8RLYRFXT
しいたけのにおいがする
0262デフォルトの名無しさん
垢版 |
2016/01/13(水) 14:32:13.77ID:EwraTGVM
>>130
Elixirのことですねわかります
0264デフォルトの名無しさん
垢版 |
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 とかと一緒なんだな。
そりゃゲームも作れるはずだは。 ω ω ω 。
0265デフォルトの名無しさん
垢版 |
2016/01/15(金) 09:54:14.99ID:NW8jpekK
binaryの最後の1バイトの値を取り出したいときって
<<N>> = binary_part(Binary, {byte_size(Binary), -1}).
より簡単な方法ってある?
0266デフォルトの名無しさん
垢版 |
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)


こんな大事なことはもっと目立つところに書いておいてほしいぬ.
0267デフォルトの名無しさん
垢版 |
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}) するより便利というか速い気がするんだが
0272デフォルトの名無しさん
垢版 |
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章 かっこいい機能いろいろ
0274デフォルトの名無しさん
垢版 |
2017/07/20(木) 19:17:50.01ID:7mH9PEZK
jupyter に Erlang が
0276デフォルトの名無しさん
垢版 |
2018/05/23(水) 21:51:10.12ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

IBHUA
0277デフォルトの名無しさん
垢版 |
2018/07/05(木) 00:10:54.48ID:RfoszcD2
2W2
0278デフォルトの名無しさん
垢版 |
2019/04/22(月) 20:21:31.01ID:RZzf8Iuc
RIP
0279デフォルトの名無しさん
垢版 |
2019/04/22(月) 22:40:17.66ID:KTQxmf3k
訃報】プログラミング言語「Erlang」を生んだジョー・アームストロング氏死去
https://gigazine.net/news/20190422-joe-armstrong-passed-away/
> 関数型プログラミング言語「Erlang」の生みの親として知られるコンピューター科学者・プログラマーのジョー・アームストロング(ジョセフ・レスリー・アームストロング)氏が2019年4月20日(土)に亡くなったことがわかりました。68歳でした。

RIP Joe Armstrong, the author of Erlang
https://freethoughtblogs.com/kriswager/2019/04/20/rip-joe-armstrong-the-author-of-erlang/


なお、アームストロング氏は「なぜオブジェクト指向はクソなのか」という名文を残しています。

Why OO Sucks
http://www.cs.otago.ac.nz/staffpriv/ok/Joe-Hates-OO.htm

訳文がいくつか存在するので参考にしてください。

連続体仮説: なぜオブジェクト指向はクソなのか by Joe Armstrong - 勝手に翻訳
http://chypot.blogspot.com/2012/08/by-joe-armstrong.html

オブジェクト指向はクソか? - tokoma1's blog
http://tokoma1.hatenablog.com/entry/2015/06/07/083347

Why OO Sucks by Joe Armstrong · GitHub
https://gist.github.com/posaunehm/4087971
0280デフォルトの名無しさん
垢版 |
2019/04/22(月) 23:14:33.15ID:T2jcPHbj
おくやみもうしあげますn
0282デフォルトの名無しさん
垢版 |
2019/05/15(水) 12:18:56.56ID:lMYkdlNQ
R.I.P.
■ このスレッドは過去ログ倉庫に格納されています

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