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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2010/07/20(火) 16:14:21
■書籍
Erlangプログラミング
ttp://www.oreilly.co.jp/books/9784873114651/
3デフォルトの名無しさん:2010/07/20(火) 17:19:32
なんだよもうErlang下火だから翻訳版でないだろうと思って原書買っちゃったよ・・・

いちおつ
4デフォルトの名無しさん:2010/07/20(火) 21:54:30
そんなことよりCouchDB: The Definitive Guideの表紙の犬が愛らしくてしょうがないんだが


あ、>>1
5デフォルトの名無しさん:2010/07/20(火) 23:02:01
6デフォルトの名無しさん:2010/07/21(水) 13:57:50
即死しそうだなw
7デフォルトの名無しさん:2010/07/21(水) 14:11:24
前スレはこれだな。
【関数】Erlang Part2【エリクソン】
http://pc12.2ch.net/test/read.cgi/tech/1270087367/l50
8デフォルトの名無しさん:2010/07/21(水) 23:55:33
それは前スレというか…今スレの出来損ないというか…
9デフォルトの名無しさん:2010/07/22(木) 00:35:18
これって、HaskellのGHCみたいに強力なコンパイラが出現すればもっと流行るんだろうか…
10デフォルトの名無しさん:2010/07/22(木) 02:35:10
保守
11デフォルトの名無しさん:2010/07/23(金) 01:15:12
もうすぐ前スレに並ぶ。
12デフォルトの名無しさん:2010/07/24(土) 17:08:16
>>2買ってきたら煽り文に、「マルチコアの最適な利用という観点での注目度も高く」とあったけど、どうなん?
あまり聞かない気が。。。。
13デフォルトの名無しさん:2010/07/25(日) 13:17:45
昨日、O'Reillyのerlang本がついに発売になりました。
これで普及に弾みがつくか?
14デフォルトの名無しさん:2010/07/25(日) 16:06:19
3章途中まで読んだけど、なんか誤植が多い。。。
15デフォルトの名無しさん:2010/07/25(日) 19:45:12
ブルーインパルス本よりいいの?
16デフォルトの名無しさん:2010/07/28(水) 01:01:24
秋葉のヨド売り切れてた
17デフォルトの名無しさん:2010/07/28(水) 23:33:49
ちょっと読んだけど、haskell本に比べたら、全然
関数型言語に関する記述は少ないな。
実用的かも
18デフォルトの名無しさん:2010/07/29(木) 12:57:57
C,C++でスレッドを使えない情弱用言語ってことでFA?
19デフォルトの名無しさん:2010/07/29(木) 13:09:51
イミフ
20デフォルトの名無しさん:2010/07/29(木) 13:20:00
>>18
そうだよ
21デフォルトの名無しさん:2010/07/29(木) 15:59:12
Erlangは唯一のオブジェクト指向言語かもしれない@Joe Armstrong
http://www.infoq.com/jp/news/2010/07/objects-smalltalk-erlang
22デフォルトの名無しさん:2010/07/29(木) 17:20:53
変な日本語だな。
23デフォルトの名無しさん:2010/07/29(木) 17:48:28
エリ糞ン
24デフォルトの名無しさん:2010/08/02(月) 21:53:43
Erlangの無名関数定義で
F = fun(X) -> fun(X-1).
みたいな記述は出来ないの?出来損ないでさーせん
25デフォルトの名無しさん:2010/08/03(火) 16:04:11
>>24
再帰っていってくれよ
26デフォルトの名無しさん:2010/08/08(日) 18:45:08
Erlangプログラミング P140、5.4.2節イベントハンドラのコード例で、

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

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

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

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

                  京都大学霊長類研究
36デフォルトの名無しさん:2010/08/29(日) 20:10:49
>>34
いや、うれしいよ。
バグでプロセスがダウンすることを前提にした言語って他に無いからね。
こんなに安全にプロセスが扱える言語って他にある?
逆に嬉しくないと思う理由が知りたい。
37デフォルトの名無しさん:2010/08/29(日) 20:17:02
exeファイルにしたい理由:
1. ワンファイルアプリ最高
2. windowsの慣習的にexeファイルがないと、erlangに詳しくない人は実行方法がすぐにわからない。
また、バッチファイルだとコマンドラインの印象があって、詳しくない人は不安を感じる。
3. インストールを前提とする以外の実行方法を提供する自由が欲しい
38デフォルトの名無しさん:2010/08/29(日) 20:49:49
>>37
ShllExecute叩くexe作るだけでいいんじゃないの。
Erlang側で準備する必要があるものとは正直思えない。
39デフォルトの名無しさん:2010/08/29(日) 20:56:41
>>38
糞でかいerlang処理系まるごと添付するのか?w
ダッサイなぁ
40デフォルトの名無しさん:2010/08/29(日) 20:57:46
(ネイティブ)exeにしたい理由もう一個追加
4. 起動を早くしたいから
41デフォルトの名無しさん:2010/08/29(日) 21:09:59
>>40
ガイキチは放置の原則を忘れていたよ。
一通り暴れたらヨソ行ってくれ。
42デフォルトの名無しさん:2010/08/29(日) 21:48:36
そこまでいけるって思うなら自分で実装してみてはどうだろうか?
Rubyとかの他の言語でもあったよね。そういうの。Exerbか。
ある程度動くところまでやれば未踏で1年分の金くれるかもよ。

あとWindowsの場合、プロセスじゃなくてスレッドでどうこうしたほうがパフォーマンス出ると思うんだよ。
Chromeぐらいじゃないか?普通はスレッドであるべきところを意識的にプロセスにしたアプリケーションは。
43デフォルトの名無しさん:2010/08/29(日) 22:00:03
>>42
erlangのプロセスはOSのプロセスではなくてグリーンスレッドだよ。
44デフォルトの名無しさん:2010/08/29(日) 22:22:03
>>33 はい では言いだしっぺの法則で サンプルよろしく♪
45デフォルトの名無しさん:2010/08/29(日) 22:22:54
まちがえた
>>42 はい では言いだしっぺの法則で サンプルよろしく♪
46デフォルトの名無しさん:2010/08/29(日) 22:30:18
言いだしっぺの法則の趣旨を考えてから二度氏ね
47デフォルトの名無しさん:2010/08/29(日) 22:30:53
>>46
やりたくないことを人に押し付ける方便です
48デフォルトの名無しさん:2010/08/29(日) 23:36:05
>>36
そんなに安全な言語をWindowsで動かしてもしょうがないからでしょ
49デフォルトの名無しさん:2010/08/29(日) 23:40:04
>>48
安全だから気楽にプログラミングできるんじゃないか。
50デフォルトの名無しさん:2010/08/30(月) 00:01:42
安全な言語を活かすなら土台も堅牢でないと
土台がやわなら安全な言語も猫に小判、豚に真珠
51デフォルトの名無しさん:2010/08/30(月) 04:20:23
>>50
それを言うなら砂上の楼閣でしょう。
猫に小判と豚に真珠は、本人が価値を理解できないというたとえです。
52デフォルトの名無しさん:2010/08/30(月) 17:41:07
>>50
LinuxもMacもWindowsも堅牢性は大して変わらん。
微々たる差だよ。
それにCでやろうがJavaでやろうがErlangでやろうがエラー対策はちゃんとやるでしょうが。
53デフォルトの名無しさん:2010/08/30(月) 21:44:17
>>52
じゃあLinuxやMac使えばいいじゃん
Exeなんぞいらんぞ
54デフォルトの名無しさん:2010/08/31(火) 14:16:37
>>53
そりゃそうだがインストールベースの大きさを無視するのはよろしくないんじゃないか?
55デフォルトの名無しさん:2010/08/31(火) 22:14:03
サーバの運用環境ならWindowsのインストールベースなど無視しておk
56デフォルトの名無しさん:2010/08/31(火) 23:22:05
>>37の理由なんてサーバサイドじゃ意味ないよな
やっぱEXEなんぞいらん
57デフォルトの名無しさん:2010/09/01(水) 00:05:51
>>56
サーバ以外の用途もあるでしょうが。
58デフォルトの名無しさん:2010/09/01(水) 00:42:04
ないも同然だろ
だからexeがないんだろ
現実見ろよ
59デフォルトの名無しさん:2010/09/01(水) 00:51:35
そもそもErlangのプロセスはVMが仕切ってるので
ネイティブで動く.exe実行ファイルとは相容れないだろう
もしやるとしてもVMを包んだ実行ファイルで配布とかになる
60デフォルトの名無しさん:2010/09/01(水) 09:29:33
学習・開発環境としてのWindowsはあり → EXE不要
運用環境としてのWindowsはなし → EXE不要
61デフォルトの名無しさん:2010/09/01(水) 15:23:57
ErlangSDLでゲーム作った → EXE必要

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

ttp://game.watch.impress.co.jp/docs/20080911/epic.htm
PS4やらXBOX720やらになったら関数型言語が主役になるんだよ。
それで関数型言語マンセーなんだよ今は。
66デフォルトの名無しさん:2010/09/01(水) 16:26:54
>>65
それには理由があって、
基礎理論が何かで分けられるべきだと思うんだよ。
HaskellやMLやLispなどはlambda-calculusを基礎理論としているのに対して、
Erlangやgoなどはpi-calculusないしはCSPを基礎理論にしている。
だから関数型言語というよりもプロセス指向言語と呼んだほうが分類としては正しいと思うんだ。
67デフォルトの名無しさん:2010/09/01(水) 17:50:31
で、結局EXEの作り方知ってる人いたら容量がどんだけ大きくなってもいいので教えてください。
68デフォルトの名無しさん:2010/09/01(水) 19:22:31
VM(起動OS含めて)まるごとの実行環境作ってしまえば医院で内科医?
69デフォルトの名無しさん:2010/09/01(水) 19:30:31
どこから沸いてきたんだってくらい盛り上がってるねw
70!omikuji:2010/09/01(水) 19:47:07
どうだ
71デフォルトの名無しさん:2010/09/01(水) 23:15:59
Wings3Dだけexeでずるいぃ!
Sculptrisの登場で見放されちゃったんだから
こんな使えない3Dモデラー作ってないで、
素直にErlangの実行ファイル作成ソフト作ってくれよん!

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

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

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

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

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

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

そうだよ。

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

76デフォルトの名無しさん:2010/09/13(月) 18:37:04
>>75
オブジェクト指向ってどういう基礎理論に基づいているの?
77デフォルトの名無しさん:2010/09/13(月) 18:37:36
>>75に自己レス。
オブジェクト指向並列論理言語ではなくて、オブジェクト指向論理言語に訂正。

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

ま、いいかげんオブジェクト指向はErlangとはスレ違いの話題だから、これで終わりにする。
Erlangにおける並行オブジェクト指向プログラミングなんて話題になれば、また顔を出すよ。
83デフォルトの名無しさん:2010/09/13(月) 21:53:00
>>77
> ・オブジェクト指向並列論理言語:ESP

ESPは逐次型
逐次推論マシンPSIで使われていた
84デフォルトの名無しさん:2010/09/16(木) 06:37:32
>>71
Wings3Dソースみてみたけど、werl起動するだけみたいよ?
インストールするとErlangのディレクトリ構造でライブラリ(**/ebin/*.beam)があるし。
exeは出来なくても良いけど、ソース無し(*.beamだけ)の実行環境と、ライブラリ集めて
インストールパッケージ作る、簡単な方法はほしいと思う。
85デフォルトの名無しさん:2010/11/03(水) 01:22:04
ほしゅ
86デフォルトの名無しさん:2010/11/03(水) 05:07:20
このスレまだあったのか
87デフォルトの名無しさん:2010/11/04(木) 16:44:34
>>84
バッチファイルをEXE化して実行ファイル作ろうと思っても、
OTPからerl.exeとかerlc.exeとか引っ張り出すと動かなくなる。
なんでWings3Dは動いてんだよぉ…
88デフォルトの名無しさん:2010/11/15(月) 17:07:33
一時期はerlang便利って思ってたけど、最近では普通にCだな・・・
スタイルさえ確立すればCでもErlangでも同じ。
89デフォルトの名無しさん:2010/11/15(月) 17:08:28
しかもerlang遅いし。
90デフォルトの名無しさん:2010/12/27(月) 06:37:49
741 デフォルトの名無しさん [sage] 2010/12/25(土) 00:53:53 ID: Be:
    erlangがほとんど話題に上がらないのはなぜ?
91デフォルトの名無しさん:2010/12/27(月) 07:38:46
そんなことErlangへんでえ
92デフォルトの名無しさん:2010/12/27(月) 09:06:10
座布団どころか家財全部もってちゃいなさい
93デフォルトの名無しさん: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) のクローン同然のものであることも告白した。
94デフォルトの名無しさん:2011/04/07(木) 09:18:19.82
>>93
うわ、これはショックだ
そうじゃないかと思ってはいたけど両御大の言葉ともなると
つらいものがあるな…漏れはArmstrong本で勉強したわけだし
きっと何か事情があるんだと思うな…そうであってほしい
95デフォルトの名無しさん:2011/04/07(木) 09:30:56.90
>>94
>かの有名な JVM に回帰すること,の2点を約束している。
むしろこのあたりでちょっとうれしかったり
96デフォルトの名無しさん:2011/04/07(木) 09:31:33.38
>>94
Posted by Sadek Drobi on Apr 01, 2011

97デフォルトの名無しさん:2011/04/07(木) 09:33:02.12
>>96
ぐはぁ、そういう記事を1週間も遅れて貼るかなもう
98デフォルトの名無しさん:2011/04/07(木) 09:55:37.68
>>97
しかも>>94は縦読みだ。
99デフォルトの名無しさん:2011/04/07(木) 14:57:04.63
April Fool
100デフォルトの名無しさん:2011/04/07(木) 16:20:29.39
>>99
that's right!
101デフォルトの名無しさん:2011/04/07(木) 20:25:44.71
>>94
Cool !
102デフォルトの名無しさん:2011/04/07(木) 22:44:01.66
このスレこんな人いたのかw

Erlang再入門開始
カンマとセミコロンとピリオドの使い分けがようやく見えてきた
103デフォルトの名無しさん:2011/04/08(金) 21:55:40.57
Erlang使えば未来予知が出来るのかと思って喜んできてみたら嘘かよ
104デフォルトの名無しさん:2011/04/09(土) 05:20:40.84
>>103
Erlangやったからといってバラ色ではないことくらいの予知ならできるが。
105デフォルトの名無しさん:2011/04/10(日) 00:55:39.83
これソースからインストールすると死ぬほど時間かかるんだけどなんとかなんないの
106デフォルトの名無しさん:2011/04/10(日) 19:36:25.14
一回だけだろ
気にすんな
107デフォルトの名無しさん:2011/04/10(日) 20:41:25.95
クラウド鯖で使うから何度もインストールするんだよね
108デフォルトの名無しさん:2011/04/10(日) 20:57:57.37
待つだけだろ
気にすんな
109デフォルトの名無しさん:2011/04/10(日) 23:50:53.53
気にしない
110デフォルトの名無しさん:2011/04/10(日) 23:52:29.12
>>105
インストールに時間掛かるとか言うやつは、osインストールやった事無いだろ
111デフォルトの名無しさん:2011/04/11(月) 13:12:35.07
>>107
同じ構成のインスタンス借りてるんだろ?
ならコンパイルした結果を丸ごともってきゃいいじゃねぇか
112デフォルトの名無しさん:2011/05/10(火) 20:00:37.36
ですな。
checkinstallでrpm化してもいいし。
最近のcheckinstallがどうも不具合ぶくみだが、、
113 忍法帖【Lv=1,xxxP】 :2011/05/29(日) 11:40:10.62
haha
114天使 ◆uL5esZLBSE :2011/07/04(月) 11:22:19.64
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

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

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

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

file:read(IoDevice, Number)だとNumber分だけ文字が入力されるまで待ってしまうわけで、
つまりシステムコールとしてのread(2)に近い動作をしてほしい。
流石に1文字づつ読みに行くみたいな頭悪いことしたくないし、Cとかで書いてラップするのが安定?
119デフォルトの名無しさん:2011/12/12(月) 17:39:24.26
PythonとかRubyとか使ったけどやっぱりErlangのバイナリ処理とパターンマッチは最強だわ。
文字列の処理が楽だから、プログラムの翻訳機がかなり作りやすい。
で、他にもっと使いやすい言語ある?
120デフォルトの名無しさん:2011/12/13(火) 02:03:46.41
121デフォルトの名無しさん:2012/01/27(金) 06:04:19.72
ようするにやっぱ最強だわ
122デフォルトの名無しさん: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 と密接な関係にあります。片方を知っていれば、
もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に
勉強しようとするのには向いた代物ではありません。
123デフォルトの名無しさん:2012/02/24(金) 08:47:40.07
C++でプログラム書くのを覚えるとCでプログラム書くのは無理
Cを読むくらいならできるけど、Cで書くなんてバカらしくてやってらんない
124デフォルトの名無しさん:2012/02/24(金) 11:47:20.51
>>119
ない
125デフォルトの名無しさん:2012/02/24(金) 12:31:54.46
>>123
おれ産業系なんで、Cばっかりだよ。
126デフォルトの名無しさん:2012/02/25(土) 11:16:27.76
>>124
Prolog御大を挙げなくちゃ。
127デフォルトの名無しさん:2012/03/02(金) 15:27:53.31
>>123
それCommonLispで以下略とか
Erlangで以下略とか
なんでもよくね?

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

初心者にとっつきやすいようにprint分を簡単にして、
プリコンパイラを簡単にして関数を全部publicアクセスにして、
レコードをクラスっぽい使い方できるようにすれば
ちょっとはとっつきやすくなるんじゃないかな。
131デフォルトの名無しさん:2012/05/07(月) 20:40:16.21
標準入出力よりも数値計算が充実してくれれば
行列で検索してもキューの話ばっかり出てきて困る
132デフォルトの名無しさん:2012/05/07(月) 23:20:06.08
バイナリ吐けるようになったらね。
133デフォルトの名無しさん:2012/05/11(金) 01:23:00.97
C言語とかで関数の頭で引数の検査でassert使うけど、それをパターンマッチングでできるので楽
134デフォルトの名無しさん:2012/05/12(土) 11:46:22.40
f({a,X}, {b,X}) ->
みたいに引数の同値の検査を省略できるのはたしかに楽
135デフォルトの名無しさん:2012/05/13(日) 00:44:56.28
いくらググってもemacsモードのファイルがヒットしないのでしばらくあきらめてたら、配布物の中に入ってた
136デフォルトの名無しさん: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はマイナー過ぎてググっても分かりません。
誰か助けてください…。
137136:2012/09/01(土) 10:37:43.22
ようは、対話型のコマンドは実行できるが、コンパイルできないんです。
Windows7の64版を使っているのは関係ないだろうし、途方に暮れています。
もちろん作業フォルダにファイルは置いています。
138デフォルトの名無しさん:2012/09/01(土) 10:43:24.13
>>136
sample.erlのあるディレクトリに書き込み権限持ってる?
139デフォルトの名無しさん:2012/09/01(土) 11:37:37.91
>error writing file

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

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

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

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

haskell本みたいに流行るかな
143デフォルトの名無しさん:2012/09/18(火) 16:24:56.70
とりあえず翻訳しますん
144デフォルトの名無しさん:2012/09/19(水) 20:51:23.28
Great Goodって流行ってんのか?
145デフォルトの名無しさん:2012/10/05(金) 01:46:26.68
http://itpro.nikkeibp.co.jp/article/NC/20120920/424107/
日経コンピュータ9/27号の関数型言語の記事で、誰も校閲してくれなかったのか
(erlangを参考にアクター押しのscalaと違い) erlangが並列実行に向いてないことになってて泣けた。
何故か記事にされてないclojureよりも残念な気がしてくる。
146デフォルトの名無しさん:2012/10/05(金) 02:08:57.26
Scala押しありきの記事みたいだから(出てくる名前からして)気にしても仕方ないよ
147デフォルトの名無しさん:2012/10/05(金) 05:26:29.57
進藤 智則さんって、Erlangを使ったことがあるのだろうか?
148デフォルトの名無しさん:2012/10/05(金) 23:07:29.48
>>145
好意的に解釈すると、
Erlangは「並列(pallarel)」ではなくて「並行(concurrent)」に向いてる言語だ、
といいたんじゃね?
あと、ErlangのSMPサポートは2006年(R11B)からなので、マルチコアを
活かせるようになったのは結構最近。
149デフォルトの名無しさん:2012/10/06(土) 22:10:16.70
> あと、ErlangのSMPサポートは2006年(R11B)からなので、マルチコアを
> 活かせるようになったのは結構最近。

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

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

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

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

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

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

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

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

ただRiak等が良いのですぐに乗り換えられるかと問われれば、うちの用途から考えると無理
だなとは思う。Javaで書かれた分析処理の並列実行が一番の用途でレンジスキャンが主なので
やはりHBaseが一番はまるんだよね。
データモデルも違うし、結局のところ用途から選ぶのが最初じゃないのかな。
168デフォルトの名無しさん: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
169デフォルトの名無しさん:2013/04/03(水) 22:39:48.08
未だにちょくちょく解説本が出てるのね
http://www.amazon.co.jp/dp/1593274351/ref=snp_td1
170デフォルトの名無しさん:2013/04/05(金) 22:57:53.98
Programming Erlangも第2版が出るってJoeが言ってたよ
171デフォルトの名無しさん:2013/04/06(土) 01:33:29.59
もしかして、まだ開発が進んでるのか…?
172デフォルトの名無しさん:2013/04/06(土) 02:14:41.40
第二版でるのは嬉しいけど初版出てから仕様に大きな変化が何かあったっけ?
173デフォルトの名無しさん:2013/04/06(土) 03:31:03.27
joearms.github.com/2013/04/05/programming-erlang-2nd-edition.html
どうやら最近の流れに反映させるのが主な目的なのかな
これは初学者がステップアップしやすくなりそうだし
初版を持ってる人も最近の動向が掴めていいかもしれないね
174デフォルトの名無しさん:2013/04/24(水) 21:25:43.67
escriptでプログラム動かすときmain/1のアリティを使う場合、main([Arg])な感じに書かないと
思ったように動かなかったんだけどアリティを[]で囲むのってescriptで動かす場合だけなの?
175デフォルトの名無しさん: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
176デフォルトの名無しさん: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行がなんでこんな条件書くだけで
プログラムが動作するのかが納得がいかないのは自分だけ?
178デフォルトの名無しさん:2013/07/15(月) NY:AN:NY.AN
あなただけ
179デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
バックトラック
180デフォルトの名無しさん: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へ書き換えられた(改悪された?)が、
上記のリスト内包表記の書き直しを含むいくつかの基礎的な事柄が削られているので注意要
181デフォルトの名無しさん: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つ作って勝手に総当りでもやってんのかと
思ってましたけどそんな機能あったんですね。
とりあえずバックトラックについてはググって
本は図書館に初版あればいいけどとりあえず探してみます。
185デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
パックトラックはprologのモノとは違うのか
186デフォルトの名無しさん: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や上記の書籍になる
188デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
難しい用語はすっ飛ばして、総当りとやってる事は何か違うの?見かけ上じゃなくて実質的に
189デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>188
総当たりでも、深さ優先か幅優先かで停止性が異なる
190デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
この場合の深さと幅って何になるの?
191180:2013/07/17(水) NY:AN:NY.AN
>>188
意味(=実質)は同じで構文(=見かけ)が違うだけ、いわゆる構文糖(syntax sugar)
192デフォルトの名無しさん: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を呼び出すようにメッセージを送ったほうが良いのでしょうか?
193デフォルトの名無しさん:2013/10/06(日) 07:33:08.12
      \                     /
       \                  /
         \               /
          \            /
            \         /
             \∧∧∧∧/
             <    俺 >
             < 予 し  >
             <    か >
─────────< 感 い >──────────
             <   な >      
             <  !!! い >       
             /∨∨∨∨\
            /         \
          /   ∧_∧     \
         /     (  ・ω・)      \
       /    _(__つ/ ̄ ̄ ̄/    \
      /        \/     /      \
194デフォルトの名無しさん:2013/10/06(日) 08:06:02.97
(ここに一人いるんですが長いこと触ってないので答えられないんです)
195デフォルトの名無しさん:2013/10/06(日) 09:38:30.84
>>192

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

2版出たのかな?
196デフォルトの名無しさん: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のプロセス生成とごっちゃにしてない?
200デフォルトの名無しさん: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.
203デフォルトの名無しさん: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()で排他制御してしまうという案もあると思う。
元々の設問が中途半端なので、後は好みの問題かな?
205デフォルトの名無しさん:2013/10/15(火) 12:12:27.04
erlangにcpanっぽいサイトやツールってありませんか?
206デフォルトの名無しさん:2013/10/15(火) 13:28:31.64
rebarとgithubですね
207デフォルトの名無しさん:2013/10/15(火) 17:36:05.11
ありがとうございます。
ライブラリのインストールはrebarでできそうです。
ライブラリを探す場合は皆さんgoogleやなんかで"erlang hogehoge"のような感じで探してるんでしょうか?
208デフォルトの名無しさん:2013/10/19(土) 23:08:56.20
CEAN ってのがあったと思うけど、無くなった?
209デフォルトの名無しさん:2013/10/19(土) 23:27:02.14
あるけどサイト見たらサポートプラットフォームがR15Bまでだった
210デフォルトの名無しさん:2013/11/06(水) 08:05:57.09
erlangって他の言語を呼び出せる?
例えばCのライブラリとか。

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

サンキュ


どうやるの?
ポインタ教えてもらえると助かる
213デフォルトの名無しさん:2013/11/06(水) 12:54:45.77
214デフォルトの名無しさん:2013/11/06(水) 13:11:59.20
ほんまここの住人は菩薩様やで
215デフォルトの名無しさん:2013/11/07(木) 03:20:44.11
サンキュ

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

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

http://elixir-lang.org/
Elixir v0.13.0 released, hex.pm and ElixirConf announced
239デフォルトの名無しさん:2014/04/30(水) 21:26:49.02 ID:CFD955T1
>238
えーいきなりErlang R17縛りだって...
240デフォルトの名無しさん:2014/07/06(日) 16:17:21.27 ID: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
241デフォルトの名無しさん:2014/07/06(日) 16:44:54.13 ID:XWehaxkr
on lispみたいに、webで一回翻訳したものの更新&校正版だな。
http://www.ymotongpoo.com/works/lyse-ja/index.html
242デフォルトの名無しさん:2014/07/06(日) 16:50:00.38 ID:ZmPBc803
タイトルの略称のインパクトが足りない
すごいアーッ本にしよう
243デフォルトの名無しさん:2014/07/06(日) 18:11:14.90 ID:aspDWAp6
Erlangのvm(でいいのか?)とか、CSPとか凄い好みなのだけど、パターンマッチ系を多用するML系言語で挫折した僕はlfe(Lisp Flavoured Erlang)つかってしまいますです。
244デフォルトの名無しさん:2014/08/02(土) 11:52:55.55 ID:0zt4dTHD
もっといいやり方ないの?これ
ttp://ofmizno.blogspot.jp/2013/10/2013-10-18-erlang.html
245デフォルトの名無しさん:2014/08/02(土) 12:03:44.71 ID:gDjKnomp
馬鹿には無理
246デフォルトの名無しさん:2014/08/12(火) 16:47:35.08 ID:IbGC0kFi
Erlangのマクロで、変数を動的かプリプロセスで生成できますか?
初心者ですが。文法は正しくない擬似コードを書きますが。
こういったXの書き換えはどうしたら出来ますか? 
事前か実行時にループ分を展開しとけば可能だと思うんですが。


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


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

2014/10/30(木) 開場:18:57 開演:19:00
252デフォルトの名無しさん:2014/10/30(木) 15:46:56.75 ID:f9Cx3ene
thx!
253デフォルトの名無しさん:2014/11/09(日) 14:01:43.32 ID:VcMedQcJ
254名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:38:44.22 ID:liUQicoz
JAのプログラミングErlangとすごいErlangってErlangを始めるならどっちがおすすめですか?
255デフォルトの名無しさん:2014/12/20(土) 19:25:50.13 ID:b+pAkNTW
戦闘機本読んでるけど思った以上にLispっぽい
特に[H l T]とか
256デフォルトの名無しさん:2014/12/21(日) 21:04:28.44 ID:eeSJE4Hw
すごいの方は翻訳家がネットで公開してるはずだからまずそっち見てみたら?
257デフォルトの名無しさん
文字列処理がクソすぎてもう挫折したは