トップページ⇒tech
987コメント297KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/04/14(土) 00:59:19
いいからやってみ
0232char2007/08/31(金) 19:27:49
まだだ、まだ終わらんよ!
0233デフォルトの名無しさん2007/09/01(土) 08:51:23
あまりにも短いブーム
0234デフォルトの名無しさん2007/09/01(土) 09:08:49
Programming Erlang読んでるがな
0235デフォルトの名無しさん2007/09/29(土) 22:27:42
>>231
> すっかり飽きられた感があるな

× 飽きられた
○ 食い散らかし連中には難し過ぎて分からなかった
0236デフォルトの名無しさん2007/11/08(木) 08:22:39
Programming Erlangはつまらなかった
つまらない言語は使い物になる
ということなのかもしれない
0237デフォルトの名無しさん2007/11/09(金) 05:19:29
柏原 正三『プログラミング言語Erlang入門』
ttp://www.amazon.co.jp/dp/4756150705/
『Programming Erlang』に手が出せなかった人には朗報か

この著者ってC/C++/Javaの本でよく見かけるから
保守的なイメージあったんだけど
こういう人がErlangの本出すっていうのは少し意外
0238デフォルトの名無しさん2007/11/09(金) 08:10:07
Erlangって保守的な気がするけど。
0239デフォルトの名無しさん2007/11/26(月) 17:36:37
Ocamlよりもおもしろそうだね。
ちょっと>>11をみたけど、 ;;よりも.の方が個人的にしっくりくる。
0240デフォルトの名無しさん2007/11/27(火) 07:46:46
そんな部分で決めるのですかよ
0241デフォルトの名無しさん2007/11/27(火) 07:53:01
OCaml が嫌いな人はあの変態表記を受け入れられない人が多いんじゃないかな
Perl に対する嫌悪感に似ているかも
0242デフォルトの名無しさん2007/11/28(水) 00:47:30
大抵の言語には得意な応用があるから、適材適所でいいんじゃね?
と言っても沢山覚えるのも面倒なんで、互いに補完しあうように4、5つくらいあれば良い。
Erlangで感動した例は、他の言語だったら巨大配列を使うような応用を、大量のプロセス生成でこなしたやつ。
0243デフォルトの名無しさん2007/11/28(水) 00:51:03
>>242
>大量のプロセス生成

文字で見ただけで頭が痛くなる。
icsw, icsw, icsw...
0244デフォルトの名無しさん2007/11/29(木) 06:16:33
ところで、論理型で並列な言語ってあるの?
0245デフォルトの名無しさん2007/11/29(木) 07:07:17
Concurrent Prolog
Guarded Horn Clauses (GHC/KL1/KLIC)
0246デフォルトの名無しさん2007/11/29(木) 07:19:09
>>244
織田信長
http://pc11.2ch.net/test/read.cgi/tech/1047230229/l50
0247デフォルトの名無しさん2007/11/29(木) 08:27:35
>>245、>>246

レスどうも。織田信長とは面白い名前ですね。
0248デフォルトの名無しさん2007/11/29(木) 08:40:16
>>244
Erlang 的なものとしては Oz (mozart)がある。
0249デフォルトの名無しさん2007/11/29(木) 09:51:41
>>244
Parlogってのもある。
0250デフォルトの名無しさん2007/11/29(木) 13:10:19
>>244
FLENG
PANDRA
P-Prolog
0251デフォルトの名無しさん2007/11/29(木) 13:33:47
へーいろいろあるんですね。
いつも思うんですが、そういう変わった言語
のコンパイラ作れる人ってすごいですよね。
0252デフォルトの名無しさん2007/11/29(木) 17:47:41
>>251
プログラミング研究なんかで、実験的に仕様の小さい言語を作る場合だったら
yaccなんかのパーサ生成ツール+諸々で済ますことも有る。
0253デフォルトの名無しさん2007/11/29(木) 22:36:49
なるほど、関数型言語や論理型言語もyaccでいけるわけですね。
0254デフォルトの名無しさん2007/11/29(木) 23:04:18
>>253
パーサはな!
0255デフォルトの名無しさん2007/12/01(土) 13:51:03
ブーム復活!!!!!!!!!!!!!!
http://www.thinkit.co.jp/free/article/0711/4/4/
0256デフォルトの名無しさん2007/12/02(日) 17:51:41
↑ そのページ分かりにくい
0257デフォルトの名無しさん2007/12/02(日) 19:30:14
公式のチュートリアルいいよ

Erlangはライブラリも結構揃ってるし
あとはマルチバイト文字さえ簡単に扱えれば・・・
0258デフォルトの名無しさん2007/12/05(水) 05:56:15
プログラミング言語Erlang入門ゲット。
0259デフォルトの名無しさん2007/12/05(水) 08:16:01
分かりやすい?
0260デフォルトの名無しさん2007/12/05(水) 22:21:48
HaskellといいOcamlといいErlangといい、マルチバイト文字をまともに食える
処理系が存在しない限り日本でのブレイクなんて絶対にあり得ないのに
性懲りも無く火をつけようとする人が後を絶たんなぁ。
0261デフォルトの名無しさん2007/12/05(水) 23:33:59
文字列なんて単なる Byte の Vector だから、処理系が駄目でも
ライブラリレベルで解決出来るでしょ。と言いつつ、俺は日本語が
通る様に自分で処理系を直して使ってるけど…
0262デフォルトの名無しさん2007/12/05(水) 23:36:43
>>260
Haskellはもう既に解決済みですが。ざんねん。
0263デフォルトの名無しさん2007/12/05(水) 23:51:52
>>260
別に、メッセージで扱うぐらいだったら、
別途ファイルから引っ張ってくるようにしとけば、別に
マルチバイトうんぬん関係ないと思ってるんだが・・・・
なんか本質的な問題でも含んでる?
0264デフォルトの名無しさん2007/12/06(木) 00:04:07
リテラルでソースコード中に記述した日本語文字列が
きちんと日本語として扱える処理系が欲しいという事
なんじゃないかな。length("日本語") が 3 を返す様な。
0265デフォルトの名無しさん2007/12/06(木) 00:34:48
Erlang/OTP R12B released
ttp://www.erlang.org/doc/highlights.html

The Erlang/OTP team is proud to announce the release of Erlang/OTP R12B,
now with SMP support for Windows and the language extensions: bitstring
and binary comprehensions. (Dec 5, 2007)

bit string, and binary comprehensions:
ttp://www.erlang.org/doc/reference_manual/expressions.html#6.16
ttp://www.erlang.org/doc/reference_manual/expressions.html#6.23
0266デフォルトの名無しさん2007/12/06(木) 00:39:02
ttp://www.erlang.org/doc/programming_examples/bit_syntax.html#4
0267デフォルトの名無しさん2007/12/06(木) 15:03:38
>>264
ソースコードに日本語を書くやつはバカです
0268デフォルトの名無しさん2007/12/06(木) 17:17:22
>>267
つ バカ言語「ひまわり」
0269デフォルトの名無しさん2007/12/06(木) 18:15:52
>>267
なんだそりゃ?
0270デフォルトの名無しさん2007/12/06(木) 18:20:27
ソースコードに日本語書いて何が悪いんだ
日本人にとって日本語は便利だぞ
0271デフォルトの名無しさん2007/12/07(金) 07:35:55
>>270
> ソースコードに日本語書いて何が悪いんだ
頭
0272デフォルトの名無しさん2007/12/07(金) 07:54:00
>>271
そりゃ君
0273デフォルトの名無しさん2007/12/07(金) 12:14:33
>>271
かのファインマンだって日本語習得は断念したほど難しいんだぜ
0274デフォルトの名無しさん2007/12/08(土) 01:43:00
>>270
>>267 は日本語を扱えないコンパイラが多かった時代の技術者か、
外国人も参加しているオープンソースプロジェクトのコミッタか、
そのどちらか
0275デフォルトの名無しさん2007/12/08(土) 05:17:50
>>274
今でも、日本語混ぜてねぇ・・・・とか思うんだが
どうせソース読むのは英語も曲がりなりにでも読めるようなやつらばっかっしょ。
メッセージ分離がいいと常から思う身としては、>>267に同意してしまう。



変数、関数名とかまで日本語サポートしてるなら
むしろ、ガンガン日本語で行って見ても面白いかも。とかとも思ってるけどねw
0276デフォルトの名無しさん2007/12/08(土) 14:00:55
でもリテラルに日本語を書いてはいけない事について
説得力ある説明は出来ないんでしょ?

それならただ単にバカと言いたいだけと思われても
仕方がないよ。
0277デフォルトの名無しさん2007/12/08(土) 14:10:07
特に REPL がある言語で、対話的にコードを入力する場合は、
メッセージ分離なんて考えずに、生の日本語文字列を直接入力
したくなるのは当然じゃないかな。
0278デフォルトの名無しさん2007/12/08(土) 17:05:35
Erlangがマルチバイト文字をサポートしていない理由は、その出自にあると聞いた事がある。
もともとエリクソンで通信インフラ用言語と開発された際に、超高速のプロセス生成、強力な
並列処理のトレードオフとして、データを「どこの国の言語で書かれた文章」かを判別しない、
としたとの事。
一般アプリを書く者として、Erlang使うなら日本語処理ライブラリが欲しい、というのは同意。

0279デフォルトの名無しさん2007/12/08(土) 17:32:43
↓を思い出した
--
オープンソースのイベントで、

質問者「オープンソースは英語が使えないとなかなか使えないところがありますが」

壇上者「いえ、日本人は英語が使えないと言われていますが、そんな事はありません。
その使う気があれば、だれでも英語の掲示板でも普通に会話できるので問題
にはなりません」

質問者「そうですか……ありがとうございました(T_T)」

というのも言葉の壁だね。
0280デフォルトの名無しさん2007/12/08(土) 18:18:40
おもしろい。
0281デフォルトの名無しさん2007/12/08(土) 18:49:32
>>279
ある意味真実だろ。
なんで完璧な言葉でないとダメだと思い込むのか不思議でしょうがないと感じる事あるんだけどなぁ。
支那やインドから来日したエンジニアが完璧な日本(英)語話したりしないのを微笑ましく思うのに自分等が英語での会話に完璧な表現力を必須としたがるんだか。

#完璧じゃなきゃ困るのは契約書だけだぜ
0282デフォルトの名無しさん2007/12/08(土) 19:18:47
281は279に書かれたやりとりが通じていないのではないか?
0283デフォルトの名無しさん2007/12/08(土) 19:54:54
>>282
エリートの傲慢ってやつだろ。
0284デフォルトの名無しさん2007/12/08(土) 20:04:08
壇上者は、エリートの傲慢だと思ってしまうのは卑屈すぎるって
言いたかったんだろうね。俺もそう思う。
0285デフォルトの名無しさん2007/12/08(土) 22:15:05
>>284は典型的なエリートの傲慢の誇示
0286デフォルトの名無しさん2007/12/08(土) 22:23:39
本当のエリートの傲慢はこんな感じだぜ。

壇上者「いえ、あなたが英語を使えないのは分かっていますが、それだけではありません。
その気があれば、誰だって英語で普通に会話出来るのに、その事にすら気付いてないのが
問題です。あなたはいつも大切な事を見逃しますね。ふふん。」
0287デフォルトの名無しさん2007/12/08(土) 22:26:39
とフランス語で語るのである。

イヤミのキャラが「おフランス」と言いながら一人称がmeなのをが面白い事がわかったのは中学に入ってから。
0288デフォルトの名無しさん2007/12/08(土) 22:57:24
で、Erlangの話はどうなったのさ

次のリリースではiconv同梱にしてワイドキャラクタ用関数実装とかしてくれたらなあ
遊びで使ってるユーザが自分でやるにはちと荷が重い
0289デフォルトの名無しさん2007/12/08(土) 23:12:15
どっかのblogで本が取り上げられたからお客さんが増えるかな・・・
0290デフォルトの名無しさん2007/12/08(土) 23:56:28
日本語が読めない人が読むコードのコメントに日本語で書くやつはバカ
英語が不自由な人が読むコードのコメントに英語で書くやつはバカ
0291デフォルトの名無しさん2007/12/09(日) 00:55:22
>>290
割と柔軟だなw
0292デフォルトの名無しさん2007/12/20(木) 13:55:16
コメントを書かなければ何語に不自由な人に読まれても大丈夫
0293デフォルトの名無しさん2007/12/21(金) 01:56:47
>>279
腐ったインターフェイスのアプリでも我慢して使えって話をされているような・・・
0294デフォルトの名無しさん2007/12/21(金) 07:23:48
間違った英語でグダグダ書くヤツは大馬鹿
0295デフォルトの名無しさん2007/12/28(金) 11:48:27
age
0296デフォルトの名無しさん2008/01/08(火) 08:25:16
ニュース貼っときます。
Amazonが、Erlangで動作する,オンラインDBサービス「Amazon SimpleDB」の限定ベータ提供を開始

Amazon,オンラインDBサービス「Amazon SimpleDB」の限定ベータ提供を開始
http://itpro.nikkeibp.co.jp/article/NEWS/20071217/289576/

AmazonのSimpleDBとIBMのBlue CloudがCloud Computingの発展を促す
http://www.infoq.com/jp/news/2007/12/simpledb

Amazon SimpleDB - Limited Beta
http://www.amazon.com/b?ie=UTF8&node=342335011

What You Need To Know About Amazon SimpleDB
http://www.satine.org/archives/2007/12/13/amazon-simpledb/

0297デフォルトの名無しさん2008/01/10(木) 18:05:44
コメント書かないとわからないコードを書くヤツは馬鹿です。
コメント書いてもらわないとコードが読めないヤツも馬鹿です。
0298デフォルトの名無しさん2008/01/12(土) 15:08:37
IDEが来ますぞ
http://www.infoq.com/jp/news/2008/01/erlang-ide
0299デフォルトの名無しさん2008/01/21(月) 16:26:21
Erlangの本買ったよage
0300デフォルトの名無しさん2008/02/02(土) 22:16:27
Erlangは出来る子なの?
0301デフォルトの名無しさん2008/02/04(月) 18:25:08
出来ることを期待されている子だ
0302デフォルトの名無しさん2008/02/05(火) 09:37:36
Ericsson内で十分実績あるだろ?
0303デフォルトの名無しさん2008/02/07(木) 14:47:13
JavaScriptを並列処理言語Erlangへコンパイルする"ErlyJS"とは
http://journal.mycom.co.jp/news/2008/02/07/010/index.html
> ErlyJSの開発ははじまったばかりだ。今後の展開に注目していきたい。
0304デフォルトの名無しさん2008/02/08(金) 00:39:25
Programming Erlang の日本語版もうすぐ出るよ
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06714-3

・著者:Joe Armstrong 著
榊原一矢 訳
・定価:4620円(本体4400円+税)
・B5変 480頁
・ISBN 978-4-274-06714-3
・発売日:2008/02

章立ては原書と一緒みたいだね
0305デフォルトの名無しさん2008/02/09(土) 18:11:14
>>303
JavaやC#をErlangへコンパイルできるようにならないかな。
0306デフォルトの名無しさん2008/02/09(土) 22:43:41
ならないかな ← してみよう
0307デフォルトの名無しさん2008/02/10(日) 00:49:35
>>305
Java を Erlang VM で動かしたいという事なら、逆の方が良いんじゃないかな…
0308デフォルトの名無しさん2008/02/12(火) 22:45:24
ここは質問 Ok なんすかね? 最近かじってるんですが、
erlang って prolog に似てるけど prolog と違って先行評価ですよね。
ということは差分リストとかは使えない、ということでしょうか? 例えば
X = [1,2,3 | Y].
などとした場合、Y が未束縛だとエラーになってしまいます。
つか、先行評価なら Lisp の quote みたく評価を回避する手がありそうですが
見つけられませんでした。
0309デフォルトの名無しさん2008/02/13(水) 02:11:19
> X = [1,2,3 | Y].

何がしたいのかをもうちょっと具体的に書いてくれると、
何か教えることができるかもしれない。
03103082008/02/13(水) 21:54:43
レスが遅れてすんません。平日は時間が取れなくて。

>>309
何がしたいとかではなくて、Prolog の本には必ず出てくる「差分リスト」という
データ構造が Erlang で使えるのかどうか気になっただけです。
差分リストは Prolog では常套的な手法なんですが、これが使えないと実現できない機能が
あるということもないので、使えないからダメとかいう問題ではありません。

差分リストを説明するのはちょっと難しいので省略します。私も Prolog が得意なわけじゃないのでw
0311デフォルトの名無しさん2008/02/17(日) 14:42:44
>>304
�d。この出版待ってた。
0312デフォルトの名無しさん2008/02/19(火) 21:37:20
これでDB組んだらすげぇ並列になるのか?
0313デフォルトの名無しさん2008/02/20(水) 02:22:38
>>310
亀レスだがもう見てないかな?
遅延評価は、以下のようにclosureを使えば出来る。
ttp://d.hatena.ne.jp/sfujiwara/20070513/1179067776

ただし、差分リスト実装のためには、データフロー変数が必要かと。
Oz言語での例は、以下の通称ガウディ本にあり。
『コンピュータプログラミングの概念・技法・モデル』
(Concepts, Techniques, and Models of Computer Programming)
0314デフォルトの名無しさん2008/02/20(水) 11:07:18
>>312
IOが超ボトルネック
03153102008/02/20(水) 22:24:42
>>313
時々は見てます。クロージャで包んで遅延評価ですか、ナルホド。
私が意図したものとは違うけど、ちょっと面白いですね。
大モトのブログの記事を読むと、たらい回しプログラムは遅延評価が特に
必要というわけではないのに (もともと意味のない処理みたいだけどw) あえて
クロージャにする意図は実行効率にあるようで、その辺も興味深いです。

それと、ガウディ本の存在は知ってましたが分厚いので今まで敬遠してました。
Oz も どうせ Yet Another なハイブリッド言語だろうくらいにしか思って
なかったのですが、この辺見るとなかなか侮れない感じですね。
http://www.ueda.info.waseda.ac.jp/~takagi/seminars/plfda.html

ガウディ本、読んでみます。有難うございました。
03163102008/02/25(月) 22:00:56
ワタシの書込み以降、過疎ってるので age で賑やかしに。

>>304 の人が書かれてた「プログラミング Erlang」日本語版、Amazon から届きました。
まだパラパラとめくっただけだけど、やっぱエリクソンで長年使われただけあって
ライブラリやフレームワークが揃ってる感じで、関数型言語としては業務システムの
記述に広く使われ得る第一候補の言語と期待されるのも分かる気がします。
はっきり言って Erlang って言語オタクな人にとっては簡単すぎてつまらないと
思われがちかもですが、この言語のポテンシャルは別のところにあるんですね。

>>312 >>314
なんか Mnesia という専用の DBMS があるみたいですね。
耐負荷性とかはまだ分からないけど。
0317デフォルトの名無しさん2008/03/12(水) 13:32:12
>>316
> なんか Mnesia という専用の DBMS があるみたいですね。

参考に、Erlang で実装されたJabberサーバーで、Mnesia データーベースを
使用してデータの冗長化を行うことが出来る、との事。
ttp://dsas.blog.klab.org/archives/51145655.html
0318デフォルトの名無しさん2008/03/12(水) 13:58:38
>>315
スレチかもしれないけど、ガウディ本の英語版PDFは以下で入手可能。
("Concepts, Techniques, and Models of Computer Programming pdf"で検索した)

ttp://www.google.co.jp/url?sa=t&ct=res&cd=1&url=http%3A%2F%2Fwww.ulb.ac.be%2Fdi%2Frwuyts%2FINFO020_2003%2FvanRoyHaridi2003-book.pdf&ei=oF_XR8SbNIfeswLmmIWKAw&usg=AFQjCNHG39GPWGo9Pq2gI1K35gW4a6FK2g&sig2=3hkiUJLJqfBGOCsGilscMg


ただし、計算モデルという考え方にまだ馴染みが無い方には日本語版がお薦め。
日本語版の本と、英語版PDFとを併読したら理解し易いと思う。
0319デフォルトの名無しさん2008/03/14(金) 11:00:15
まつもとゆきひろ氏が、Erlangに言及している部分。

まつもとゆきひろ×小飼弾対談 生き残るエンジニアとは?
http://www.atmarkit.co.jp/news/200803/13/survive.html

Q:いま注目している言語があるか?
A:日本語。英語以外でコンピューサイエンスを学べる日本は世界でもレアな国。
  20年後、Rubyを学ぶ際に英語を学ばないとRubyを学べない時代がくるかも
  しれないという心配がある
  Ruby以外ではErlangなど。なぜErlangか。将来のマルチコアに対応するには、
  いまのスレッドモデルでは限界がある。Erlangのプロセスモデル/アクター
  モデルというのは、その答えになるかもしれない。Rubyのようなプログラムに
  Erlangの機能を組み込むことを考えている。

0320デフォルトの名無しさん2008/03/14(金) 11:28:30
聞き飽きたぜ
0321デフォルトの名無しさん2008/03/14(金) 23:27:14
GUIライブラリとかってある?
0322デフォルトの名無しさん2008/03/14(金) 23:37:08
>>321
http://www.erlang.org/doc/apps/gs/index.html
0323デフォルトの名無しさん2008/03/16(日) 22:16:26
質問があります。

Erlangを覚えようと思うんですけど、手続き型言語しか使えません。
Lispを覚えてから学ぶべきですか?
0324デフォルトの名無しさん2008/03/16(日) 22:21:02
>>323
それはオススメできません
Erlangに行く前にLispだけで一生が終わってしまいそうです

なので出回ってる書籍や公式のチュートリアルで勉強して
分からないところをこのスレで聞いたらみんなが幸せになれると思います
0325デフォルトの名無しさん2008/03/17(月) 00:35:15
>>324
遅レスですが、ありがとうございます。
0326デフォルトの名無しさん2008/03/17(月) 21:41:15
すぐ真上のレスに遅レスはないだろう。。
0327デフォルトの名無しさん2008/03/18(火) 06:24:58
まぁ、当事者のリアルタイムの感覚がそのまま出たんだろう。
5分後にレスもらってたのに、つい2時間も放置しちゃって・・・、みたいな。
0328デフォルトの名無しさん2008/03/26(水) 21:11:48
質問があります。
以下のコードをターミナルで動かしても問題ないのですが、Eclipseで動かすと良くわからないエラーがでます。

-module(receiver).
-export([receiver/0]).

receiver() ->
receive
Msg -> io:format("~necho: ~p",[Msg]),
receiver()
end.

これを
Pid = spawn(receiver,receiver,[])

とやると、
{get_geometry,columns}
=INFO REPORT==== 26-Mar-2008::20:58:06 ===
erlide_reshd:handle_io_request: Unexpected IORequest:{get_geometry,columns}
{requests,[{put_chars,#Bin<3>},{put_chars,#Bin<60>},{put_chars,"
"}]}
=INFO REPORT==== 26-Mar-2008::20:58:06 ===
erlide_reshd:handle_io_request: Unexpected IORequest:{requests,
[{put_chars,<<"** ">>},
{put_chars,
<<"exception error: no match of right hand side value <0.908.0>">>},
{put_chars,"n"}]}

というエラーが発生します。
昨日勉強を始めたばかりの初心者なので、簡単に教えて頂けませんでしょうか?
よろしくお願いします。
0329デフォルトの名無しさん2008/03/26(水) 23:33:26
erlideは触ったことないけど、これかな?
ttp://www.erlang.org/pipermail/erlang-bugs/2007-December/000553.html

いずれにしても、最初のうちは統合環境を使わないほうがいいと思います。
0330デフォルトの名無しさん2008/03/27(木) 00:05:45
>>329
詳しくないんですが、確かにioの可能性がありますね。
Errorもそんなこと言ってますし。

とりあえず確認したところ、Eclipseでのコーディングには問題がないので、
それをコンパイルして、beamファイルのある場所でErlangをターミナルから使うってのが
一番手っ取り早かったです。

他の言語はいくつか使えるんで、いきなりIDEを使ってたんですけど、
やっぱりセオリー通り、普通のエディタで書くべきかもしれないですね。

ありがとうございました。
原因や解決方法が分かったらまた書き込んでおきます。
0331デフォルトの名無しさん2008/03/29(土) 05:11:08
セオリーは「いきなりIDEを使わない」ではなく「いきなり完成度の低いツールを使わない」だ。
完成度の高いIDEならいきなり使っていい。
■ このスレッドは過去ログ倉庫に格納されています