【関数】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
0002デフォルトの名無しさん2010/07/20(火) 16:14:21
■書籍
Erlangプログラミング
ttp://www.oreilly.co.jp/books/9784873114651/
0003デフォルトの名無しさん2010/07/20(火) 17:19:32
なんだよもうErlang下火だから翻訳版でないだろうと思って原書買っちゃったよ・・・

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


あ、>>1
0005デフォルトの名無しさん2010/07/20(火) 23:02:01
愛らしいといえばこれだな
ttp://ec2.images-amazon.com/images/I/41JJZCux%2BNL._SL500_AA300_.jpg

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

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

なる一文が入っているけれど、$0はなんで必要なの?
0027デフォルトの名無しさん2010/08/08(日) 19:07:42
>>24
つ Yコンビネータ
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の文字列と関数のパターンマッチングがどんなものかは理解してる?
飛ばし読みしてるんなら読み直したほうがいいと思う
0031292010/08/08(日) 22:03:18
飛ばし読んではいないけど(忘れているのかもしれない)、そういう問題なんですか?
io:formatがどう表示してくれるかの問題だと思っていたのですが
0032デフォルトの名無しさん2010/08/08(日) 22:04:14
あ、もしかして、[M1]だから1文字しかない場合のみ$0が付きますよ、って話ですか?
0033デフォルトの名無しさん2010/08/29(日) 18:00:50
windowsの実行ファイル作れるようになりましたか?
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側で準備する必要があるものとは正直思えない。
0039デフォルトの名無しさん2010/08/29(日) 20:56:41
>>38
糞でかいerlang処理系まるごと添付するのか?w
ダッサイなぁ
0040デフォルトの名無しさん2010/08/29(日) 20:57:46
(ネイティブ)exeにしたい理由もう一個追加
4. 起動を早くしたいから
0041デフォルトの名無しさん2010/08/29(日) 21:09:59
>>40
ガイキチは放置の原則を忘れていたよ。
一通り暴れたらヨソ行ってくれ。
0042デフォルトの名無しさん2010/08/29(日) 21:48:36
そこまでいけるって思うなら自分で実装してみてはどうだろうか?
Rubyとかの他の言語でもあったよね。そういうの。Exerbか。
ある程度動くところまでやれば未踏で1年分の金くれるかもよ。

あとWindowsの場合、プロセスじゃなくてスレッドでどうこうしたほうがパフォーマンス出ると思うんだよ。
Chromeぐらいじゃないか?普通はスレッドであるべきところを意識的にプロセスにしたアプリケーションは。
0043デフォルトの名無しさん2010/08/29(日) 22:00:03
>>42
erlangのプロセスはOSのプロセスではなくてグリーンスレッドだよ。
0044デフォルトの名無しさん2010/08/29(日) 22:22:03
>>33 はい では言いだしっぺの法則で サンプルよろしく♪
0045デフォルトの名無しさん2010/08/29(日) 22:22:54
まちがえた
>>42 はい では言いだしっぺの法則で サンプルよろしく♪
0046デフォルトの名無しさん2010/08/29(日) 22:30:18
言いだしっぺの法則の趣旨を考えてから二度氏ね
0047デフォルトの名無しさん2010/08/29(日) 22:30:53
>>46
やりたくないことを人に押し付ける方便です
0048デフォルトの名無しさん2010/08/29(日) 23:36:05
>>36
そんなに安全な言語をWindowsで動かしてもしょうがないからでしょ
0049デフォルトの名無しさん2010/08/29(日) 23:40:04
>>48
安全だから気楽にプログラミングできるんじゃないか。
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でやろうがエラー対策はちゃんとやるでしょうが。
0053デフォルトの名無しさん2010/08/30(月) 21:44:17
>>52
じゃあLinuxやMac使えばいいじゃん
Exeなんぞいらんぞ
0054デフォルトの名無しさん2010/08/31(火) 14:16:37
>>53
そりゃそうだがインストールベースの大きさを無視するのはよろしくないんじゃないか?
0055デフォルトの名無しさん2010/08/31(火) 22:14:03
サーバの運用環境ならWindowsのインストールベースなど無視しておk
0056デフォルトの名無しさん2010/08/31(火) 23:22:05
>>37の理由なんてサーバサイドじゃ意味ないよな
やっぱEXEなんぞいらん
0057デフォルトの名無しさん2010/09/01(水) 00:05:51
>>56
サーバ以外の用途もあるでしょうが。
0058デフォルトの名無しさん2010/09/01(水) 00:42:04
ないも同然だろ
だからexeがないんだろ
現実見ろよ
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必要

最近の『関数型言語でマルチスレッドゲーム製作』ブームで
ゲームに適してるって騙されてゲーム作った俺に誰でもいいから土下座して謝ってください。
0062デフォルトの名無しさん2010/09/01(水) 15:25:29
スマンカッタ OTL
0063デフォルトの名無しさん2010/09/01(水) 15:45:47
>>61
ちょっとまて、関数型言語がゲームに適しているってどこに書いてあったんだ?
あとerlangは関数型言語じゃなくてプロセス指向言語だぞ
0064デフォルトの名無しさん2010/09/01(水) 15:46:12
ごめんなさいですの OTL
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の作り方知ってる人いたら容量がどんだけ大きくなってもいいので教えてください。
0068デフォルトの名無しさん2010/09/01(水) 19:22:31
VM(起動OS含めて)まるごとの実行環境作ってしまえば医院で内科医?
0069デフォルトの名無しさん2010/09/01(水) 19:30:31
どこから沸いてきたんだってくらい盛り上がってるねw
0070!omikuji2010/09/01(水) 19:47:07
どうだ
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レンダリングを生かしたゲーム開発には向いていないと思われ。
0073デフォルトの名無しさん2010/09/13(月) 18:20:24
JavaScript/Smalltalk/Rubyは手続き型言語だろ普通に。
0074デフォルトの名無しさん2010/09/13(月) 18:22:34
>>72
全く見当違い。

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

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

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

そうだよ。

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

0076デフォルトの名無しさん2010/09/13(月) 18:37:04
>>75
オブジェクト指向ってどういう基礎理論に基づいているの?
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における並行オブジェクト指向プログラミングなんて話題になれば、また顔を出すよ。
0083デフォルトの名無しさん2010/09/13(月) 21:53:00
>>77
> ・オブジェクト指向並列論理言語:ESP

ESPは逐次型
逐次推論マシンPSIで使われていた
0084デフォルトの名無しさん2010/09/16(木) 06:37:32
>>71
Wings3Dソースみてみたけど、werl起動するだけみたいよ?
インストールするとErlangのディレクトリ構造でライブラリ(**/ebin/*.beam)があるし。
exeは出来なくても良いけど、ソース無し(*.beamだけ)の実行環境と、ライブラリ集めて
インストールパッケージ作る、簡単な方法はほしいと思う。
0085デフォルトの名無しさん2010/11/03(水) 01:22:04
ほしゅ
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でも同じ。
0089デフォルトの名無しさん2010/11/15(月) 17:08:28
しかもerlang遅いし。
0090デフォルトの名無しさん2010/12/27(月) 06:37:49
741 デフォルトの名無しさん [sage] 2010/12/25(土) 00:53:53 ID: Be:
    erlangがほとんど話題に上がらないのはなぜ?
0091デフォルトの名無しさん2010/12/27(月) 07:38:46
そんなことErlangへんでえ
0092デフォルトの名無しさん2010/12/27(月) 09:06:10
座布団どころか家財全部もってちゃいなさい
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点を約束している。
むしろこのあたりでちょっとうれしかったり
0096デフォルトの名無しさん2011/04/07(木) 09:31:33.38
>>94
Posted by Sadek Drobi on Apr 01, 2011

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

Erlang再入門開始
カンマとセミコロンとピリオドの使い分けがようやく見えてきた
0103デフォルトの名無しさん2011/04/08(金) 21:55:40.57
Erlang使えば未来予知が出来るのかと思って喜んできてみたら嘘かよ
0104デフォルトの名無しさん2011/04/09(土) 05:20:40.84
>>103
Erlangやったからといってバラ色ではないことくらいの予知ならできるが。
0105デフォルトの名無しさん2011/04/10(日) 00:55:39.83
これソースからインストールすると死ぬほど時間かかるんだけどなんとかなんないの
0106デフォルトの名無しさん2011/04/10(日) 19:36:25.14
一回だけだろ
気にすんな
0107デフォルトの名無しさん2011/04/10(日) 20:41:25.95
クラウド鯖で使うから何度もインストールするんだよね
0108デフォルトの名無しさん2011/04/10(日) 20:57:57.37
待つだけだろ
気にすんな
0109デフォルトの名無しさん2011/04/10(日) 23:50:53.53
気にしない
0110デフォルトの名無しさん2011/04/10(日) 23:52:29.12
>>105
インストールに時間掛かるとか言うやつは、osインストールやった事無いだろ
0111デフォルトの名無しさん2011/04/11(月) 13:12:35.07
>>107
同じ構成のインスタンス借りてるんだろ?
ならコンパイルした結果を丸ごともってきゃいいじゃねぇか
0112デフォルトの名無しさん2011/05/10(火) 20:00:37.36
ですな。
checkinstallでrpm化してもいいし。
最近のcheckinstallがどうも不具合ぶくみだが、、
0113 忍法帖【Lv=1,xxxP】 2011/05/29(日) 11:40:10.62
haha
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実装ってないの?
0117デフォルトの名無しさん2011/11/30(水) 06:17:52.47
このスレまだあったのか
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のバイナリ処理とパターンマッチは最強だわ。
文字列の処理が楽だから、プログラムの翻訳機がかなり作りやすい。
で、他にもっと使いやすい言語ある?
0120デフォルトの名無しさん2011/12/13(火) 02:03:46.41
鯖移転記念
ttp://www.atmarkit.co.jp/news/200704/27/erlang.html
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で書くなんてバカらしくてやってらんない
0124デフォルトの名無しさん2012/02/24(金) 11:47:20.51
>>119
ない
0125デフォルトの名無しさん2012/02/24(金) 12:31:54.46
>>123
おれ産業系なんで、Cばっかりだよ。
0126デフォルトの名無しさん2012/02/25(土) 11:16:27.76
>>124
Prolog御大を挙げなくちゃ。
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
標準入出力よりも数値計算が充実してくれれば
行列で検索してもキューの話ばっかり出てきて困る
0132デフォルトの名無しさん2012/05/07(月) 23:20:06.08
バイナリ吐けるようになったらね。
0133デフォルトの名無しさん2012/05/11(金) 01:23:00.97
C言語とかで関数の頭で引数の検査でassert使うけど、それをパターンマッチングでできるので楽
0134デフォルトの名無しさん2012/05/12(土) 11:46:22.40
f({a,X}, {b,X}) ->
みたいに引数の同値の検査を省略できるのはたしかに楽
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はマイナー過ぎてググっても分かりません。
誰か助けてください…。
01371362012/09/01(土) 10:37:43.22
ようは、対話型のコマンドは実行できるが、コンパイルできないんです。
Windows7の64版を使っているのは関係ないだろうし、途方に暮れています。
もちろん作業フォルダにファイルは置いています。
0138デフォルトの名無しさん2012/09/01(土) 10:43:24.13
>>136
sample.erlのあるディレクトリに書き込み権限持ってる?
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ヾ      ヽ
01411362012/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本みたいに流行るかな
0143デフォルトの名無しさん2012/09/18(火) 16:24:56.70
とりあえず翻訳しますん
0144デフォルトの名無しさん2012/09/19(水) 20:51:23.28
Great Goodって流行ってんのか?
0145デフォルトの名無しさん2012/10/05(金) 01:46:26.68
http://itpro.nikkeibp.co.jp/article/NC/20120920/424107/
日経コンピュータ9/27号の関数型言語の記事で、誰も校閲してくれなかったのか
(erlangを参考にアクター押しのscalaと違い) erlangが並列実行に向いてないことになってて泣けた。
何故か記事にされてないclojureよりも残念な気がしてくる。
0146デフォルトの名無しさん2012/10/05(金) 02:08:57.26
Scala押しありきの記事みたいだから(出てくる名前からして)気にしても仕方ないよ
0147デフォルトの名無しさん2012/10/05(金) 05:26:29.57
進藤 智則さんって、Erlangを使ったことがあるのだろうか?
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
メッセージパッシング中心だから、並列実行の実効には向いているがプログラミングが難しい
その代わり分散処理に向いている
0152デフォルトの名無しさん2012/10/09(火) 22:25:26.82
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コアがたくさんあったら、あるだけ使ってくれるのでしょうか?
暇だったら教えてください
0156デフォルトの名無しさん2013/02/16(土) 16:24:20.12
馬鹿には無理
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でキラーアプリてなんかないんですか?
特徴いかしたソフトあればもっと流行ると思いんだけど
0161デフォルトの名無しさん2013/02/23(土) 20:15:33.89
node.el
0162デフォルトの名無しさん2013/02/24(日) 11:47:00.84
Wings3D
0163デフォルトの名無しさん2013/03/22(金) 01:49:31.43
HBase/HadoopやCassandraの中身をみてうんざりして
分散システムの構築に特化していると聞いて
RiakやHibariとかに密かに期待してるんですが、
これらってちゃんときちんと作られてます?
0164デフォルトの名無しさん2013/03/22(金) 07:41:00.18
どの辺りにうんざりしたのか聞きたい。
0165デフォルトの名無しさん2013/03/22(金) 18:35:55.35
pythonの本読んでたらcouchDBの宣伝してた
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
0169デフォルトの名無しさん2013/04/03(水) 22:39:48.08
未だにちょくちょく解説本が出てるのね
http://www.amazon.co.jp/dp/1593274351/ref=snp_td1
0170デフォルトの名無しさん2013/04/05(金) 22:57:53.98
Programming Erlangも第2版が出るってJoeが言ってたよ
0171デフォルトの名無しさん2013/04/06(土) 01:33:29.59
もしかして、まだ開発が進んでるのか…?
0172デフォルトの名無しさん2013/04/06(土) 02:14:41.40
第二版でるのは嬉しいけど初版出てから仕様に大きな変化が何かあったっけ?
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
0176デフォルトの名無しさん2013/04/26(金) 00:44:56.26
>>175
なんとなく分かった気がしました。
参考URLありがとうございました
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行がなんでこんな条件書くだけで
プログラムが動作するのかが納得がいかないのは自分だけ?
0178デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
あなただけ
0179デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
バックトラック
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
へー
参考になった
01831802013/07/16(火) NY:AN:NY.AN
>>181
いくつかの規則に従って、内包表記をmap/filter/concatから構成される一般的な式へ
書き換える(変換する/翻訳する)手法だから、Prologのバックトラックとはまったく違う
詳しくは>>180の書籍を参照

Erlangのオリジナルは論理型言語から出発しているが、
その言語とは(Concurrent PrologやGHCといった)並列論理型言語のことであり、
(いわゆるPrologと呼ばれる)逐次論理型言語が持つバックトラック機能は失われている
だから、逐次Prologに関する知識の多くはErlangでは役に立たないと考えた方がいい
01841772013/07/16(火) NY:AN:NY.AN
>>180
最初の3行で1からNまでのリスト3つ作って勝手に総当りでもやってんのかと
思ってましたけどそんな機能あったんですね。
とりあえずバックトラックについてはググって
本は図書館に初版あればいいけどとりあえず探してみます。
0185デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
パックトラックはprologのモノとは違うのか
0186デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
総当たりやってるんじゃないの?
01871802013/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
難しい用語はすっ飛ばして、総当りとやってる事は何か違うの?見かけ上じゃなくて実質的に
0189デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>188
総当たりでも、深さ優先か幅優先かで停止性が異なる
0190デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
この場合の深さと幅って何になるの?
01911802013/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
      \                     /
       \                  /
         \               /
          \            /
            \         /
             \∧∧∧∧/
             <    俺 >
             < 予 し  >
             <    か >
─────────< 感 い >──────────
             <   な >      
             <  !!! い >       
             /∨∨∨∨\
            /         \
          /   ∧_∧     \
         /     (  ・ω・)      \
       /    _(__つ/ ̄ ̄ ̄/    \
      /        \/     /      \
0194デフォルトの名無しさん2013/10/06(日) 08:06:02.97
(ここに一人いるんですが長いこと触ってないので答えられないんです)
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)を読むと変化が起きると思う。
01971922013/10/07(月) 20:02:16.34
>>195
そういう解釈でいいんですかね?

>>2版出たのかな?
部屋から発掘した1版1刷を読んでます。
01981952013/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を呼ぶようにすれば良いのかな?

「完全同時並行」は話をメンドクサくしてしまったかもしれない。ごめん。
02011922013/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.
02021922013/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.
02042002013/10/12(土) 11:54:07.77
>>202
そんな感じ。
set_lock()で排他制御してしまうという案もあると思う。
元々の設問が中途半端なので、後は好みの問題かな?
0205デフォルトの名無しさん2013/10/15(火) 12:12:27.04
erlangにcpanっぽいサイトやツールってありませんか?
0206デフォルトの名無しさん2013/10/15(火) 13:28:31.64
rebarとgithubですね
0207デフォルトの名無しさん2013/10/15(火) 17:36:05.11
ありがとうございます。
ライブラリのインストールはrebarでできそうです。
ライブラリを探す場合は皆さんgoogleやなんかで"erlang hogehoge"のような感じで探してるんでしょうか?
0208デフォルトの名無しさん2013/10/19(土) 23:08:56.20
CEAN ってのがあったと思うけど、無くなった?
0209デフォルトの名無しさん2013/10/19(土) 23:27:02.14
あるけどサイト見たらサポートプラットフォームがR15Bまでだった
0210デフォルトの名無しさん2013/11/06(水) 08:05:57.09
erlangって他の言語を呼び出せる?
例えばCのライブラリとか。

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

サンキュ


どうやるの?
ポインタ教えてもらえると助かる
0213デフォルトの名無しさん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
0214デフォルトの名無しさん2013/11/06(水) 13:11:59.20
ほんまここの住人は菩薩様やで
0215デフォルトの名無しさん2013/11/07(木) 03:20:44.11
サンキュ

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

ということを聞いて試そうと思ったのだけど
みんな試したことある?そのときどうやって試した?
0221デフォルトの名無しさん2014/02/20(木) 13:03:11.91
What's App が話題になっているね
0222デフォルトの名無しさん2014/02/22(土) 18:16:02.20
Erlangってネットワークサーバ書くのに特化してるだけでしょ、そりゃ流行らないよねぇ〜
そのお得意のネットワークサーバもGolangに喰われてお終いさぁ〜
え?パターンマッチング? はいはい最強、最強っと
0223デフォルトの名無しさん2014/02/22(土) 18:21:49.54
でっていう
0224デフォルトの名無しさん2014/02/22(土) 20:41:44.06
goってerlangと似たようなdomain対象にしてるのになんで別言語にしたんかなって考えたんだけど
文法とかが違うことも影響したんかなって思った
もしそうならgoはjvmでいうscalaみたいにerlang vmで実装して欲しかったな
それならerlangにもプラス効果ありそうだし
0225デフォルトの名無しさん2014/02/22(土) 21:17:51.84
一緒に沈んでしまうじゃないですか
0226デフォルトの名無しさん2014/02/23(日) 00:03:00.01
確認したいんだけど、erlang って流行ってないの?
うちの会社でずっと動いてんのコレなんだけど
0227デフォルトの名無しさん2014/02/23(日) 02:49:52.19
Prologライクな文法って時点で、流行る気配がしない。使える代物ではあるけど。
0228デフォルトの名無しさん2014/02/23(日) 10:33:14.51
cライクな文法とかクソだと思うけど
クソが普及しちゃったから他もそれっぽくなるのはしょうがないね
0229デフォルトの名無しさん2014/02/23(日) 20:32:10.12
>>227
ICOT関係者が聞いたら泣くぞ
0230デフォルトの名無しさん2014/02/23(日) 20:37:42.47
馴染みやすそうな構文のElixirを通してErlangのVMやOTPの良さを知った
0231デフォルトの名無しさん2014/02/23(日) 23:02:25.74
erlang界のscalaことelixir
0232デフォルトの名無しさん2014/02/24(月) 03:08:56.96
クソなのはいつだってそれを扱う人間の方だぜ
0233デフォルトの名無しさん2014/03/14(金) 10:09:36.40 ID:rb80PkEP
歌舞伎座.tech#3楽しかったですね
0234デフォルトの名無しさん2014/03/20(木) 23:17:23.18 ID:o5up30+T
elixirで文字コードの変換をしたいときってどうしたら良いですか?
0235デフォルトの名無しさん2014/03/24(月) 19:53:48.35 ID:HnFwnjk0
それ俺も知りたいやつや
0236デフォルトの名無しさん2014/03/30(日) 21:24:38.61 ID:a3+O6QeH
http://jungerl.sourceforge.net/ jugerlというパッケージの中にiconvがあるらしい
0237デフォルトの名無しさん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
0238デフォルトの名無しさん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
0239デフォルトの名無しさん2014/04/30(水) 21:26:49.02 ID:CFD955T1
>238
えーいきなりErlang R17縛りだって...
0240デフォルトの名無しさん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
0241デフォルトの名無しさん2014/07/06(日) 16:44:54.13 ID:XWehaxkr
on lispみたいに、webで一回翻訳したものの更新&校正版だな。
http://www.ymotongpoo.com/works/lyse-ja/index.html
0242デフォルトの名無しさん2014/07/06(日) 16:50:00.38 ID:ZmPBc803
タイトルの略称のインパクトが足りない
すごいアーッ本にしよう
0243デフォルトの名無しさん2014/07/06(日) 18:11:14.90 ID:aspDWAp6
Erlangのvm(でいいのか?)とか、CSPとか凄い好みなのだけど、パターンマッチ系を多用するML系言語で挫折した僕はlfe(Lisp Flavoured Erlang)つかってしまいますです。
0244デフォルトの名無しさん2014/08/02(土) 11:52:55.55 ID:0zt4dTHD
もっといいやり方ないの?これ
ttp://ofmizno.blogspot.jp/2013/10/2013-10-18-erlang.html
0245デフォルトの名無しさん2014/08/02(土) 12:03:44.71 ID:gDjKnomp
馬鹿には無理
0246デフォルトの名無しさん2014/08/12(火) 16:47:35.08 ID:IbGC0kFi
Erlangのマクロで、変数を動的かプリプロセスで生成できますか?
初心者ですが。文法は正しくない擬似コードを書きますが。
こういったXの書き換えはどうしたら出来ますか? 
事前か実行時にループ分を展開しとけば可能だと思うんですが。


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


foreach( [1, 2, 3] as n) {
X[n+1] = fnct( X[n], n )
}
02482462014/08/13(水) 00:35:57.34 ID:o4SLtD2/
自己解決しました
0249デフォルトの名無しさん2014/08/15(金) 09:50:53.52 ID:kGUZHqxo
>>248
どう解決したのであろうか。
0250デフォルトの名無しさん2014/09/12(金) 01:31:11.30 ID:hatAVbzF
elixir1.0.0おめでとう
0251デフォルトの名無しさん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
0252デフォルトの名無しさん2014/10/30(木) 15:46:56.75 ID:f9Cx3ene
thx!
0253デフォルトの名無しさん2014/11/09(日) 14:01:43.32 ID:VcMedQcJ
0254名無しさん@そうだ選挙に行こう2014/12/14(日) 11:38:44.22 ID:liUQicoz
JAのプログラミングErlangとすごいErlangってErlangを始めるならどっちがおすすめですか?
0255デフォルトの名無しさん2014/12/20(土) 19:25:50.13 ID:b+pAkNTW
戦闘機本読んでるけど思った以上にLispっぽい
特に[H l T]とか
0256デフォルトの名無しさん2014/12/21(日) 21:04:28.44 ID:eeSJE4Hw
すごいの方は翻訳家がネットで公開してるはずだからまずそっち見てみたら?
0257デフォルトの名無しさん2015/02/04(水) 19:06:34.40 ID:tjSlws+J
文字列処理がクソすぎてもう挫折したは
0258デフォルトの名無しさん2015/06/08(月) 23:39:53.11 ID:JodU/eML
【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1433336300/
0259デフォルトの名無しさん2015/06/11(木) 20:05:55.72 ID:ClVnABcE
>>258
これ面白そうだな
0260デフォルトの名無しさん2015/06/18(木) 14:11:00.00 ID:EqdgCPQw
test
0261デフォルトの名無しさん2015/12/20(日) 15:49:17.63 ID:8RLYRFXT
しいたけのにおいがする
0262デフォルトの名無しさん2016/01/13(水) 14:32:13.77 ID:EwraTGVM
>>130
Elixirのことですねわかります
0263デフォルトの名無しさん2016/01/13(水) 15:48:07.42 ID:EwraTGVM
>>230
わかります
0264デフォルトの名無しさん2016/01/14(木) 13:18:41.31 ID: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.99 ID:NW8jpekK
binaryの最後の1バイトの値を取り出したいときって
<<N>> = binary_part(Binary, {byte_size(Binary), -1}).
より簡単な方法ってある?
0266デフォルトの名無しさん2016/01/15(金) 16:05:36.74 ID: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.92 ID:TbH/Z5Ji
>>257
ram ファイルを [ram,raw,binary,write,read] で開いて
pwrite と pread で random access する方が
binary_part(Hoge, {Pos, Len}) するより便利というか速い気がするんだが
0268デフォルトの名無しさん2016/02/19(金) 14:04:23.44 ID:hw/X0Y/j
0269デフォルトの名無しさん2016/02/21(日) 15:09:02.94 ID:zmvsu5mb
0270デフォルトの名無しさん2016/06/23(木) 19:51:18.63 ID:Z9WBmNB8
19.0リリースあげ
Erlang/OTP 19.0 has been released
http://www.erlang.org/news/105
0271デフォルトの名無しさん2016/06/24(金) 00:03:58.12 ID: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
0272デフォルトの名無しさん2016/07/01(金) 10:59:04.63 ID: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章 かっこいい機能いろいろ
0273デフォルトの名無しさん2017/04/02(日) 19:07:17.00 ID:fP8TJ4RC
新着レスの表示
レスを投稿する