■前スレ
【関数】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
【関数】Erlang Part 2【エリクソン】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/07/20(火) 16:13:49124デフォルトの名無しさん
2012/02/24(金) 11:47:20.51 >>119
ない
ない
125デフォルトの名無しさん
2012/02/24(金) 12:31:54.46 >>123
おれ産業系なんで、Cばっかりだよ。
おれ産業系なんで、Cばっかりだよ。
126デフォルトの名無しさん
2012/02/25(土) 11:16:27.76127デフォルトの名無しさん
2012/03/02(金) 15:27:53.31 >>123
それCommonLispで以下略とか
Erlangで以下略とか
なんでもよくね?
Cの良いところって組み込みで使ってもリソース食わないとか
ハードウェアに密接する処理書いてもOKとかそのくらいしかわからん(ここはC++でもいいんだが)
それ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アクセスにして、
レコードをクラスっぽい使い方できるようにすれば
ちょっとはとっつきやすくなるんじゃないかな。
ほかの言語やってるとやっぱり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はマイナー過ぎてググっても分かりません。
誰か助けてください…。
本に書いてある通り、
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版を使っているのは関係ないだろうし、途方に暮れています。
もちろん作業フォルダにファイルは置いています。
Windows7の64版を使っているのは関係ないだろうし、途方に暮れています。
もちろん作業フォルダにファイルは置いています。
138デフォルトの名無しさん
2012/09/01(土) 10:43:24.13 >>136
sample.erlのあるディレクトリに書き込み権限持ってる?
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ヾ ヽ
日本の不幸は中国と朝鮮だ。
この二国の人々も日本人と同じく漢字文化圏に属し、同じ古典を共有しているが、
もともと人種的に異なるのか、教育に差があるのか、 日本との精神的隔たりはあまりにも大きい。
地球規模で情報が行き来する時代にあって、近代文明や国際法について知りながら、
過去に拘り続ける中国・朝鮮の精神は千年前と違わない。
国際的な紛争の場面でも「悪いのはお前の方だ」と開き直って恥じることもない。
もはや、この二国が国際的な常識を身につけることを期待してはならない。
「東アジア共同体」の一員として その繁栄に与ってくれるなどという幻想は捨てるべきである。
日本は、大陸や半島との関係を絶ち、 欧米と共に進まなければならない。
ただ隣国だからという理由だけで特別な感情を持って接してはならない。
この二国に対しても、国際的な常識に従い、国際法に則って接すればよい。
悪友の悪事を見逃す者は、共に悪名を逃れ得ない。
私は気持ちにおいては「東アジア」の悪友と絶交するものである。
_,,,,,,__ __,,,__
ィjj)))))))))!!!!!彡ヽ,
/ミ/ ,}彡ヘ
|ミ{ -‐ ‐ ‐ ‐- {三=|
El==; ゚ ''==. |ミミ,|
`レfォ、,〉 :rfォ.、, !iル┤
. { `¨ i ・、¨ ´ `{ゞ'} 支那、朝鮮とは
. | '`!!^'ヽ .「´ 付き合うなと忠告しておいたのに。。。
! ,-ニ'¬-、 ,!|,_
. \´?` / ∧ヘ、
__/〉`ー ' ´ / 〉 \
_, ィ´「∧ / / 」¬ー- 、_
-‐ ´ / / ヽ、/ / iヾ ヽ
142デフォルトの名無しさん
2012/09/18(火) 13:23:04.15 Learn You Some Erlang for Great Good!
ttp://shop.oreilly.com/product/9781593274351.do
haskell本みたいに流行るかな
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よりも残念な気がしてくる。
日経コンピュータ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)からなので、マルチコアを
活かせるようになったのは結構最近。
好意的に解釈すると、
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)な処理を実現できる方法があるの?
> 活かせるようになったのは結構最近。
そーだったのか、知らなかった。>>148は詳しいな。
マルチコアでerlangの時代が来ましたよ!っぽい売り出し方してたから、
昔からそういうつくりなのかと思ってた。
あと、erlangのプロセスって、カーネルスレッドともユーザレベルスレッドとも違って
erlangのランタイムで実現されているという説明をよく目にするんだけど、これってどゆこと?
erlangのランタイムはOSのスレッドを利用しないで、並列(parallel)な処理を実現しているということ?
そうだとすると、たとえば、C言語でもカーネルスレッドを使わずに並列(parallel)な処理を実現できる方法があるの?
150デフォルトの名無しさん
2012/10/07(日) 03:45:41.74 //
/ / バカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ 馬鹿には無理
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
/ / バカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ 馬鹿には無理
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
151デフォルトの名無しさん
2012/10/07(日) 15:51:59.58152デフォルトの名無しさん
2012/10/09(火) 22:25:26.82153デフォルトの名無しさん
2012/10/25(木) 11:44:12.09 久しぶりに触ったけどどうしても変数名を小文字で書いてしまって困る
ElixirとかあるけどどうせならReiaに流行ってほしかったなあ
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/
なんか面白そう
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コアがたくさんあったら、あるだけ使ってくれるのでしょうか?
暇だったら教えてください
・Erlangプログラミング(動物)とプログラミングErlang(飛行機)のどちらがお勧めですか
・マシンにCPUコアがたくさんあったら、あるだけ使ってくれるのでしょうか?
暇だったら教えてください
156デフォルトの名無しさん
2013/02/16(土) 16:24:20.12 馬鹿には無理
157デフォルトの名無しさん
2013/02/16(土) 18:21:05.54 >>155
他の言語でもオライリー派だったせいか、オライリーの方が分かりやすかった
ただ、最初から応用が頭にある場合は飛行機の方がいいかもしれない
ErlangのVMが用意するスケジューラの数はマシンについてるコア数と同じだけど、その割り当てが1対1でマシンについてるコアを使うとは限らない
他の言語でもオライリー派だったせいか、オライリーの方が分かりやすかった
ただ、最初から応用が頭にある場合は飛行機の方がいいかもしれない
ErlangのVMが用意するスケジューラの数はマシンについてるコア数と同じだけど、その割り当てが1対1でマシンについてるコアを使うとは限らない
158デフォルトの名無しさん
2013/02/16(土) 20:05:23.21159デフォルトの名無しさん
2013/02/16(土) 20:27:19.21 >>158
その本達は両方持ってて飛行機の方を先に読んでいたんですけど、動物本は文章が例によって長くて途中で投げましたw
結構昔の話なのでもう忘れてしまって印象だけなんですけど、多分そっちで正解です。
まあ気が乗ってくれば、入門だけ本に助けてもらって後はいくらでもネットで調べられますからね。
その本達は両方持ってて飛行機の方を先に読んでいたんですけど、動物本は文章が例によって長くて途中で投げました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とかに密かに期待してるんですが、
これらってちゃんときちんと作られてます?
分散システムの構築に特化していると聞いて
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の手ごたえだと、中の人に分かってない人が混じっていて、今後もバグを積み重ねていくものと思われ
なんで地盤の部分をちゃんと勉強しないんだろ。まさに砂上の楼閣
(Cassandraはちらっと見た程度だけど)
大局的には凡人には及びも付かないロジックなんだろうけど
道具レベル的にJavaに対する理解が稚拙、特にマルチスレッド関係
バグにバグを重ねていてもはや修正不可能。なんで動いているように見えるのか不思議
JIRAの手ごたえだと、中の人に分かってない人が混じっていて、今後もバグを積み重ねていくものと思われ
なんで地盤の部分をちゃんと勉強しないんだろ。まさに砂上の楼閣
167デフォルトの名無しさん
2013/03/23(土) 08:00:46.09 >>166
そっか。うちなんかはあまり考えずにCDHのHBaseをインストールして運用しているだけの
ユーザーだから、あまり実装の稚拙さとかは考えたことが無かった。
ただRiak等が良いのですぐに乗り換えられるかと問われれば、うちの用途から考えると無理
だなとは思う。Javaで書かれた分析処理の並列実行が一番の用途でレンジスキャンが主なので
やはりHBaseが一番はまるんだよね。
データモデルも違うし、結局のところ用途から選ぶのが最初じゃないのかな。
そっか。うちなんかはあまり考えずに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
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
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で動かす場合だけなの?
思ったように動かなかったんだけどアリティを[]で囲むのって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
> 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.26177デフォルトの名無しさん
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行がなんでこんな条件書くだけで
プログラムが動作するのかが納得がいかないのは自分だけ?
ピタゴラスの定理が使われてるけど
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へ書き換えられた(改悪された?)が、
上記のリスト内包表記の書き直しを含むいくつかの基礎的な事柄が削られているので注意要
過去、自分も納得いかんかった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 の全組み合わせだと思ってたけど。
A, B, C それぞれについて、1 から N の全組み合わせだと思ってたけど。
182デフォルトの名無しさん
2013/07/16(火) NY:AN:NY.AN183180
2013/07/16(火) NY:AN:NY.AN184177
2013/07/16(火) NY:AN:NY.AN >>180
最初の3行で1からNまでのリスト3つ作って勝手に総当りでもやってんのかと
思ってましたけどそんな機能あったんですね。
とりあえずバックトラックについてはググって
本は図書館に初版あればいいけどとりあえず探してみます。
最初の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や上記の書籍になる
"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 この場合の深さと幅って何になるの?
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を呼び出すようにメッセージを送ったほうが良いのでしょうか?
一番目の問題の「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版出たのかな?
CPU(core)が複数あると、完全に同時並行で動くと思う。
問題は
2つのプロセスが同時に呼んだ場合も正しく動くこと。
そのような場合、片方のプロセスは成功、もう一方は失敗を保証すること
で、spawnされたプロセスをどうするか書かれていないし、
true = register(AnAtom,spawn(Fun)).
で良いような気がする。
2版出たのかな?
196デフォルトの名無しさん
2013/10/06(日) 23:31:35.79 Erlang学習してて詰んでる人は、「コンピュータプログラミングの概念・技法・モデル」(略称CTMCP)を読むと変化が起きると思う。
198195
2013/10/10(木) 00:38:15.06 >>197
spawnされたほうの始末を考えないといけないことに気付かせる問題と思った。
完全同時並行で動くので、少なくとも8章までの内容だと、プロセスが2つ起動されてしまうのは
回避できないように思う。流し読んだだけなので違ったらごめん。
現実的にはregister成功したらメッセージを投げて、spawnされたほうはそのメッセージを待って
仕事をするのかな?
spawnされたほうの始末を考えないといけないことに気付かせる問題と思った。
完全同時並行で動くので、少なくとも8章までの内容だと、プロセスが2つ起動されてしまうのは
回避できないように思う。流し読んだだけなので違ったらごめん。
現実的にはregister成功したらメッセージを投げて、spawnされたほうはそのメッセージを待って
仕事をするのかな?
199デフォルトの名無しさん
2013/10/10(木) 05:51:00.14200デフォルトの名無しさん
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を呼ぶようにすれば良いのかな?
「完全同時並行」は話をメンドクサくしてしまったかもしれない。ごめん。
命令数で切り替えを行うのだったと思う。
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.
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.
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.
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.77205デフォルトの名無しさん
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"のような感じで探してるんでしょうか?
ライブラリのインストールは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がそのモジュールにデータ書き込んだり読み出したりするなんてこと
をしたいんだけど。
例えばCのライブラリとか。
あと、erlangでCのプログラムを起動してアクセスできる?
具体的には
Cで書いた状態ありのモジュールを起動して、
erlangがそのモジュールにデータ書き込んだり読み出したりするなんてこと
をしたいんだけど。
211デフォルトの名無しさん
2013/11/06(水) 10:25:14.91 可能
212デフォルトの名無しさん
2013/11/06(水) 11:02:13.24213デフォルトの名無しさん
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
214デフォルトの名無しさん
2013/11/06(水) 13:11:59.20 ほんまここの住人は菩薩様やで
215デフォルトの名無しさん
2013/11/07(木) 03:20:44.11 サンキュ
erlangからポートで接続してデータのやりとりすれば
いいわけね。
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が不要になる
ということを聞いて試そうと思ったのだけど
みんな試したことある?そのときどうやって試した?
その部分ではGCが不要になる
ということを聞いて試そうと思ったのだけど
みんな試したことある?そのときどうやって試した?
221デフォルトの名無しさん
2014/02/20(木) 13:03:11.91 What's App が話題になっているね
222デフォルトの名無しさん
2014/02/22(土) 18:16:02.20 Erlangってネットワークサーバ書くのに特化してるだけでしょ、そりゃ流行らないよねぇ〜
そのお得意のネットワークサーバもGolangに喰われてお終いさぁ〜
え?パターンマッチング? はいはい最強、最強っと
そのお得意のネットワークサーバも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にもプラス効果ありそうだし
文法とかが違うことも影響したんかなって思った
もしそうならgoはjvmでいうscalaみたいにerlang vmで実装して欲しかったな
それならerlangにもプラス効果ありそうだし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
