関数型プログラミング言語ML
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGMLは比較的学びやすく、関数型言語を学んでみたい人にもお奨めです。
MLの魅力に取りつかれた人も、MLをこれから学ぶ人もどうぞ。
参考:リンク集
http://www.gin.or.jp/users/daikoku/lang/func/ml.htm
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG今はWinskelの本が主流。勿論英語のみ。
ただ、Hennessyの本もpdfかなんかでウェブ上にあったと思ったが。
当然英語のみ。
0155デフォルトの名無しさん
NGNGSchemeはかなり実用に使われていますが。
0156デフォルトの名無しさん
NGNGみなさんの「実用的な」という修飾子の定義があいまいです。
1.テキストデータを処理したり、画像や計算するのが実用的なのか?
2.GUIやネットワーク(TCP/IP)などの処理、飾りまで作れると実用的なのか?
どうでしょう?
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGたぶん両方以上。
0160デフォルトの名無しさん
NGNG>たぶん両方以上。
どんなの?
0161デフォルトの名無しさん
NGNGSchemeできる技術者を求めている職場がどれだけある?
たぶん、そういう意味。
俺は自分のためにSchemeを勉強しているし、仕事にも使っているが。
0162デフォルトの名無しさん
NGNGもともと使ってた会社なのか、
それとも自分で無理やり使い出したとか?
0163デフォルトの名無しさん
NGNG貴方みたいな人は、大体どんな職業に
ついたとしても、飯は食えます。
0164デフォルトの名無しさん
NGNGあなたは、どんな職業でも大丈夫
とは言えないでしょう。
0165デフォルトの名無しさん
NGNGそんなんじゃなくて、Schemeで作ったプログラムを
客に納品してるのか、どうかが知りたい。
>>164
ホットケ!
0166デフォルトの名無しさん
NGNGこんなのも作れるんだから、いけるんじゃない?
だめ? >>165
0167デフォルトの名無しさん
NGNGという考え方がわからん。視野がせまいんじゃないの?
0168デフォルトの名無しさん
NGNGプランナーとかプロダクションシステムとかのシステムが。
あと、YahooSTOREはLISPで書かれてたような。
WhiteHouseのWebサーバーもLISPだという噂(これは自信無し)
も聞いたことあり。
0169デフォルトの名無しさん
NGNG誰も実用的なんていう観点は持ち込んでないんですが
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG>プランナーとかプロダクションシステム
って何?
とりあえず『Scheme による記号処理入門』を注文してみたんだけど。
0172161
NGNGだけです。見積もりの作成なんかのとき、強力な関数電卓として利用す
ることが一番多いかな。
0173デフォルトの名無しさん
NGNGまあ、この話題おもしろいからいいか。
漏れは、金の取れるプログラムの中に、関数型言語で書かれた
ものが少ないというのは処理系の問題だと思っている。
実用アプリを書こうとしたら、ライブラリが足りなくて
結局ライブラリを作るとことから始めなきゃいかん。
これは痛い。
Macintosh CommonLispぐらいライブラリが充実している処理系が増えるといいね。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756139264/ref%3Dpd%5Fsim%5Fb%5Fdp%5F1%5F2/249-6276606-7673106
この問題は結局、処理系作っても飯は飯は食えんというのが問題なのかもしれない。
0174デフォルトの名無しさん
NGNGLISPを使っている人はMLを使っている人より多いし、
LISPの方がライブラリもあるし常に書き足されている。
LISPerをMLにとりこむことは出来ないか?
使う機会がああれば、MLも手になじむと思うんですが。
0175デフォルトの名無しさん
NGNG>>173
> Macintosh CommonLispぐらいライブラリが充実している処理系
激しく同意。
(関係ないけど、今この方向ではSMLとOCaml、どちらが強いでしょう?)
> この問題は結局、処理系作っても飯は飯は食えんというのが問題なのかもしれない
確かに……。
使われない->処理系で喰ってけない->使えない->使われない
見たくもない悪循環。
0176デフォルトの名無しさん
NGNGbitにあったじゃん。自分あれ読んでSchemeはじめました(笑)。
0177デフォルトの名無しさん
NGNG今すぐ買うけどなあ。
値段がACL並でも。
0178デフォルトの名無しさん
NGNGmerd,Arc,他にも面白そうな言語がうまれてるんですね。
楽しみ楽しみ。っていうか私もつくりたくなってきた。
0179デフォルトの名無しさん
NGNG実用的っていうか業務で使うとなると保守する人が少ないってのがね…。
0180デフォルトの名無しさん
NGNGhttp://merd.net/
http://www.paulgraham.com/paulgraham/arc.html
ですか? merdは初めて見ました。
>>177
ACLってどんな長所がありましたっけ
0181デフォルトの名無しさん
NGNGオレモナー
0182175
NGNG見たくもない悪循環その2。
メンテ出来る人が少ない->そういうのは実務ではねぇ->使える人も使えない人も使わない->興味を持たれ難い
->メンテ出来る人が少ない
……というか、Cが強くなりすぎたんだ……。
0183デフォルトの名無しさん
NGNGああ、例のやつだね。
使われない言語スパイラル。
というか別に C だけでもないでしょ?
0184175,182
NGNG> C だけでもないでしょ?
C++もJavaもPerlも……流行る言語はC系というのが条件なのかなぁと思いまして。
それに、Cがあまりにも広く使われているために他の言語の入り込む余地が無くなっている、という考えが浮かんだんです。
でもMLの場合はCだの何だのと言う以前に関数型ですね
0185デフォルトの名無しさん
NGNG↓
何やらかしても首切られない
↓
終身雇用
↓
(゚д゚)ウマー
0186デフォルトの名無しさん
NGNG(LispからJavaのクラスを呼び出したり、その逆も出来る)
Javaに寄生してその辺の問題点をとりあえずは回避できないかな。
もっとも、MLの「速い」という利点は無くなっちゃいますけど。
SML.NETだとそういう状態になるのかな?
だといいんだけど。
もしそうなら
Ocaml.NETも欲しいかもしんない。
0187デフォルトの名無しさん
NGNG今、Average Programmerのためではなく、
Good Programmerのための言語の候補となるのってなんだろう?
っていろいろ調べてるんですが、いいのご存知ありませんか?
0188デフォルトの名無しさん
NGNG↓
やらかしてしまった!!
↓
首を切られる
↓
会社傾く
↓
(゚∀゚)アヒャヒャー
0189180
NGNGわたしはあまり詳しくなくて……
Good Programmer云々といった物はARCではじめて目にしたくらいなんです。
他の方情報プリーヅです。
>>186
http://www.dcs.ed.ac.uk/home/mlj/
MLjはどうですか?
> .NET
CLR(でしたっけ)はそんなに美味しい物でもないようです。
……とはいっても、無いのとは比べ物にならないだろうとは思うのですけど。
0190デフォルトの名無しさん
NGNGいってなかったっけ?
0191デフォルトの名無しさん
NGNGHaskellじゃないの?Simon Payton Jonesとか。
SML/NJならBell Labだよね。
0192デフォルトの名無しさん
NGNG亀レスでスマソ。
O堀先生は、今は険しい道のJAISTにいらはります。
実力からして東大でも来られただろうに、なぜ好き好んでJAISTへ逝ったかは謎。
酒がうまいから?
0193デフォルトの名無しさん
NGNG「MLがマイナーだから」
の系かと。プログラミング言語って社会的慣性が特に強くて(プログラマは人間だから)、
歴史を見ても研究レベルのお話が産業レベルで受け入れられるのに何十年もかかってるような。
自動メモリ管理とか抽象データ型とか。そもそも高級言語自体が出てきたときも、
「プログラムはアセンブリで書くもので、自動プログラミング(コンパイラのこと)なんて
使い物にならない」とか言われてたそうだし。それと同じじゃん?
だからあと10〜20年ぐらい待てば、MLやHaskellの要素技術も当たり前になるかと(今のままの形じゃないだろうけど)。
たとえば多相型はC++のテンプレートやJavaの汎用クラスとして取り入れられつつあるし。超スローペース&継ぎ足し的だけど…
「テンプレートの型を書くのがうざいー」とか言われ出してるから、型推論も近い…かなあ。
0194デフォルトの名無しさん
NGNGhttp://research.microsoft.com/ppt/
にいる人たちは、どの人もこの分野(関数型言語とか)の有名人。
0195デフォルトの名無しさん
NGNGML2000は俺も気になって聞いてみたことがあるんだが、
完全にアボーン状態らしい。そもそも
http://flint.cs.yale.edu/flint/publications/ml2000.html
に出てる「仕様」の案は、まだばりばりに研究途中の話ばかりで
1年や2年では実用化不可能と思われ。
研究者が自分たちで利用してる処理系はocamlにシフトしつつあるので、
復活は期待できないかと…
0196175
NGNGどうもです。
この分野には「研究中だから駄目」というのがあったんですね。
これには思い至らなかったけど、考えてみれば当たり前のことで。
それに、研究者自身が他へ行ってしまったなら、仕方ないか。
0197デフォルトの名無しさん
NGNG3.1 Subtyping and subsumption
3.2 Object-oriented programming
3.3 Modules
3.4 Concurrency
3.5.1 Extensible type
3.5.2 Datatypes
3.5.3 Laziness
3.5.4 First-class Polymorphism
3.5.5 Tuples and records
3.5.6 Arithmetic
0198デフォルトの名無しさん
NGNGしばらくは出ないの?
早く出てくれ。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG自分も欲しいからってそんな事言っちゃってー。またまたぁー。
……ほすぃ。
0201デフォルトの名無しさん
NGNG0202John ◆0z.4Is5E
NGNG0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGhttp://www5a.biglobe.ne.jp/~sasagawa/MLEdit/index.html
これ(sml/nj専用)。……windowsならそのくらい?
わたしの場合は対話環境で色がつけばそれで良いので3つ目のを使ってます。
emacsに慣れてるんなら、それが一番いいのでは無いかと。
0205John ◆0z.4Is5E
NGNGMLEditダウンロードしました。
私の場合も色がついてくれればよかったので。
0206デフォルトの名無しさん
NGNG色出すのに hilit 使ってるんですな。
font-lock 使った最新のはないんだろうか。
0207デフォルトの名無しさん
NGNGhttp://www-rocq.inria.fr/~acohen/tuareg/index.html.en
に無ければ、待つか自分で作るかしか無いのでは。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG>205
3つ目の作者です。ども。
XEmacsなどには到底及ばないのですが、イージーなところが
良いのではと一人で納得しています。
ちゃんとインストーラー(inno setup)もつけましたんで、
よろしくね。
0210John ◆0z.4Is5E
NGNGまじっすか?
すごく便利ですよ。
もう少しML勉強したら、なんか語りましょう(w
確かオセロを作っているんでしたっけ・・・・
0211John ◆0z.4Is5E
NGNG0212デフォルトの名無しさん
NGNGOcamlモードもつけてくださいです。
0213デフォルトの名無しさん
NGNGオセロはとっくの昔に挫折しまして、、、。当時は演習問題を解いて
いました。Flat関数で悩んでいたのは私。前スレで解決でした。
>>212
ほんとに?
検討します。
0214デフォルトの名無しさん
NGNGhttp://warplayer.free.fr/
Osiris。個人的には「GPL'ed」というのがアレですけど。
http://www.speakeasy.org/~hchomsky/ocaml-win32.html
これはWin32のAPIが使えます。LGPL。
UNIXやX用のライブラリはocamlもsmlも結構豊富にあります。
http://ocamlsdl.sourceforge.net/
開発止まってる?
0215デフォルトの名無しさん
NGNG0216213
NGNGocamlはどうしたらWinのコンソールで起動しますか?
PATHの設定が必要なんだろうか?
初歩的質問で恐縮です。
0217デフォルトの名無しさん
NGNGPATHの設定 -> ocaml.exeで大丈夫なようです。
>> Fatal error: cannot open pervasives.cmi
Uncaught exception: Misc.Fatal_error
ん?
0218John ◆0z.4Is5E
NGNG残念、間違いです。
Ocamlってオブジェクト指向の関数型でしたっけ。
まあ、よく知らないです。
で、MLのGUI情報ないですか?
0219デフォルトの名無しさん
NGNG自分で調べろよ
0220デフォルトの名無しさん
NGNGそしてこのスレに還元するんだ。
0221デフォルトの名無しさん
NGNG二度とここに来るな
0222デフォルトの名無しさん
NGNG三連星だ
0223デフォルトの名無しさん
NGNGOcamlで書かれた超有名アプリに、
MooっつうWebブラウザがあって、
Ocamlベースのアプレット(!)とか動いてたっけ。
GUIは多分/当然 tkベースだと思うが。
Win32 API wrapper や SDL ほど
高速でも最新情報でもなくてスマソ
0224デフォルトの名無しさん
NGNG0225223
NGNG0226デフォルトの名無しさん
NGNG0227213
NGNGMLEdit-NTで動くかどうか試していました。
system32フォルダにあるCMDを起動させておいて
ocamlを呼び出すと起動しました。Win2000の場合
には、コントロールパネルで環境変数を登録しないと
だめだそうで、CAMLLIBを設定したらOKでした。
ちょっと手直しするとcaml、ocamlもいけそうです。
こんなんでも利用価値があるのなら、なんとかしますが
マジですか?
>>212
0228デフォルトの名無しさん
NGNGお尻s?
0229デフォルトの名無しさん
NGNGOcamlはMLと文法がちがうですから、
色をつけるルールをやりなおさなくてはならないと思われ。
0230213
NGNGご教示ください。
予約語 一覧表 色分けのため
基本ライブラリの関数名 コンプリーションのデータ作成のため
コメントは (* *)でよいのかな?
ストリングは ””だよね。
0231デフォルトの名無しさん
NGNGhttp://www.ai.univie.ac.at/~markus/ocaml_sources/ocaml.vim
emacs, xemacs
http://www-rocq.inria.fr/~acohen/tuareg/index.html.en
この2つは予約語に、
http://caml.inria.fr/ocaml/htmlman/index.html
ocamlのマニュアル
これは基本ライブラリ一覧として、使えると思います。
0232213
NGNGサンキューでした。
0233コメント
NGNG0234age
NGNG(*'ー`*)
0235213
NGNGOcamlってかなり強力な言語みたい。SML以上かな。
0236デフォルトの名無しさん
NGNGその上にMLより速いです。
GUIも作れるようだし。
0237デフォルトの名無しさん
NGNGちょっと、そりゃないんじゃないの、って感じですが。
6. You may develop application programs, reusable components and other
software items that link with the original or modified versions of the
Software. These items, when distributed, are subject to the following
requirements:
a. You must ensure that all recipients of machine-executable
forms of these items are also able to receive and use the
complete machine-readable source code to the items without any
charge beyond the costs of data transfer.
b. You must explicitly license all recipients of your items to
use and re-distribute original and modified versions of the
items in both machine-executable and source code forms. The
recipients must be able to do so without any charges whatsoever,
and they must be able to re-distribute to anyone they choose.
c. If the items are not available to the general public, and the
initial developer of the Software requests a copy of the items,
then you must supply one.
0238デフォルトの名無しさん
NGNGhttp://camlcvs.inria.fr/cgi-bin/cvsweb.cgi/ocaml/LICENSE>>237
>>237
これは処理系そのものの制限なのでは?
「コンパイラ改造するの? いいけど、その時はソース見せてよね」といった感じの。
コンパイラはQPL、ライブラリはLGPLに手を入れたもの
(初めの方にある "As a special exception to" で始まる段を参照)
のようです。
excite翻訳ですぅ
6. オリジナルでリンクするか、ソフトウェアのバージョンを修正した適用プログラム、
再使用可能なコンポーネントおよび他のソフトウェア・アイテムを身につけてもよい。これらのアイテムは、分配された時、次の必要条件に従います:
a. さらに、これらのアイテムのマシン実行可能な形式の受取人がみなデータ・トランスファーのコストの向こうの料金のないアイテムへの
完全な機械可読のソース・コードを受け取り使用することができることを保証しなければなりません。
b. 明示的に、マシン実行可能なソース・コード形式中のアイテムのオリジナルで修正されたバージョンを使用し再度分配する許可を、
アイテムの受取人すべてに与えなければなりません。受取人は、チャージ少しでもなしでそのようにやっていくことができなければなりません、
また、それらは、選ぶ誰もに再度分配することができるに違いありません。
c. アイテムが一般大衆に利用可能でなく、ソフトウェアの初期の開発者が、アイテムのコピーを要求する場合、1つを供給しなければなりません。
0240デフォルトの名無しさん
NGNG書きまくって良いのでしょうか?
link with ってことはocamlのライブラリとか開発環境を
つくった場合にはどうなるんでしょう。
#入らぬ心配だとは言うな(笑
0241gggggggg ◆gggggggg
NGNG0242grrrrrrrrr
NGNG0243デフォルトの名無しさん
NGNGQPLの日本語訳です。
0244デフォルトの名無しさん
NGNGGPLじゃないらしい
0245デフォルトの名無しさん
NGNGOcamlのライセンスの疑惑を解決してください。
きもちわるひ。
0246デフォルトの名無しさん
NGNG238 が正解。コンパイラのライセンスの the Software って
のはコンパイラのことだから、コンパイラ自体のコードと
リンクしなければいいわけ。コンパイラの吐くコードに関し
ては言及していない。
普通にソフト開発するだけならば、標準ライブラリとしか
リンクしない。標準ライブラリは LGPL だったが(メーリング
リストでも議論されたけど)、商用ソフトの開発に Ocaml 使いた
いって人が標準ライブラリが LGPL じゃきついなーってんで
LGPL に手を入れたもの(リンクに関しての例外)になった。
あと、標準ライブラリにも一部ライセンスが違うものが含まれている
かもしれないことに注意(別ライセンスの C のライブラリを使ってた
りするらしい。Str モジュールとかだったかな)
0247238
NGNGhttp://www.gnu.org/philosophy/license-list.ja.html のQPLのところを参照。
その辺訂正。
0248213
NGNGOcamlでちょっと遊んでみました。
竹内関数。インタラクティブ、コンパイラだと
SMLの方が速いようです。
let rec f(x, y, z) =
if (x > y) then
f (f(x-1,y,z),f(y-1,z,x),f(z-1,x,y))
else
y;;
fun f(x,y,z) =
if (x > y) then
f (f(x-1,y,z),f(y-1,z,x),f(z-1,x,y))
else
y;
f(12,6,0);;
0249デフォルトの名無しさん
NGNGこんなんでいいのかな?
0250デフォルトの名無しさん
NGNGう〜む、独習書としては??です。
シリーズ0巻、、、。
(自然数を)「1から始めるのは素人です」と言っている
タジマ先生が思い浮かびました。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGこのページに載っているソースが物凄く汚いと思うんですけど、
Ocamlではこの書き方が普通なんでしょうか?
なんか、萎えるなあ……。
■ このスレッドは過去ログ倉庫に格納されています