X



【関数】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
0034デフォルトの名無しさん
垢版 |
2010/08/29(日) 19:02:46
いつも実行ファイルにこだわってる人いるけど、この言語でWindows上で動いてもうれしくなくない?
0035デフォルトの名無しさん
垢版 |
2010/08/29(日) 19:22:43
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

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

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

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

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

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

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

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

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

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

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

そうだよ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

初心者にとっつきやすいようにprint分を簡単にして、
プリコンパイラを簡単にして関数を全部publicアクセスにして、
レコードをクラスっぽい使い方できるようにすれば
ちょっとはとっつきやすくなるんじゃないかな。
0131デフォルトの名無しさん
垢版 |
2012/05/07(月) 20:40:16.21
標準入出力よりも数値計算が充実してくれれば
行列で検索してもキューの話ばっかり出てきて困る
0133デフォルトの名無しさん
垢版 |
2012/05/11(金) 01:23:00.97
C言語とかで関数の頭で引数の検査でassert使うけど、それをパターンマッチングでできるので楽
■ このスレッドは過去ログ倉庫に格納されています

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