let t = 関数型プログラミング言語ML 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGML は比較的学びやすく、関数型言語を学んでみたい人にもお奨めです。
ML の魅力に取りつかれた人も、ML をこれから学ぶ人もどうぞ。
参考リンク集 http://www.gin.or.jp/users/daikoku/lang/func/ml.htm
初級 ML 講座 http://www.gin.or.jp/users/daikoku/ml/default.htm
SML 演習 http://a414s1.it.nanzan-u.ac.jp/smlbook/smlwww/
OCaml http://www002.upp.so-net.ne.jp/mamewo/ml.html
OCaml 入門 http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4/mltext/ocaml.html
OCaml.org http://www.ocaml.org/
OCaml.JP http://ocaml.jp/
SML/NJ http://www.smlnj.org/
Caml http://pauillac.inria.fr/caml/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGいんぽぺろぺろだな
0005デフォルトの名無しさん
NGNGいや、なにはともあれ乙。>>1
0006デフォルトの名無しさん
NGNGhaskell新スレの「再帰事件」の教訓を生かしたか(笑
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGBASIC の let って、破壊的代入だよね
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG3.06 の時はリリース後発覚したバグが結構あったので
今回は一応慎重を期しておるのです。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGSWIG で QT binding for OCaml 誰か作ってよ。
0013デフォルトの名無しさん
NGNGhttp://wxhaskell.sourceforge.net/
0014デフォルトの名無しさん
NGNGDLLs tk83.dll and tcl83.dll were installed (by the Tcl/Tk
installer) must be added to the PATH environment variable.
To compile programs that use the LablTK GUI, the directory where the
libraries tk83.lib and tcl83.lib were installed (by the Tcl/Tk
installer) must be added to the library search path in the LIB
environment variable. E.g. if Tcl/Tk was installed in C:\tcl, add
"C:\tcl\lib" to the LIB environment variable.
以上を呼んだのですがpathの追加方法がよくわからないので
どなたか、わかりやすく説明していただけないでしょうか。
0015デフォルトの名無しさん
NGNG激しく板違い。というか、まず google
0016山崎 渉
NGNG0017デフォルトの名無しさん
NGNGhttp://pitsaw.riken.go.jp/ocaml-pxp.html
0018デフォルトの名無しさん
NGNGhttp://caml.inria.fr/bin/wilma/caml-list
Developing applications with Objective Caml
http://caml.inria.fr/oreilly-book/html/index.html
O'Caml用XMLパーサ:PXP
http://www.ocaml-programming.de/programming/pxp.html
OCaml libplot interface
http://ocamlplot.sourceforge.net/
Unicode ライブラリ
http://camomile.sourceforge.net/index.html.ja.jis
Ocamlnet
http://ocamlnet.sourceforge.net/
OCamlSDL
http://ocamlsdl.sourceforge.net/home.html
CAML系言語
http://www.carc.aist.go.jp/~masatomo/caml.html
F#
http://research.microsoft.com/projects/ilx/fsharp.aspx
LablGTK
http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html
mlgtk
http://cristal.inria.fr/~cuoq/mlgtk.html
0019デフォルトの名無しさん
NGNGhttp://pauillac.inria.fr/advi/index-en.html
0020デフォルトの名無しさん
NGNG★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安! スピード発送! 商品豊富!
★☆ http://www.get-dvd.com
☆★ 激安DVDショップ 「GETDVDドットコム」
★☆ http://www.get-dvd.com
☆★ 今すぐアクセス Let’s Go! 急げ!
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG実務ですか?
ゲーム作ってる人、いないかなあ
0025デフォルトの名無しさん
NGNGゲームといえばOCamlSDL
http://ocamlsdl.sourceforge.net/home.html
0026デフォルトの名無しさん
NGNGキーワード「Ocaml」でひっかかるとこ全部見れば
どれだけマイナーな言語かよくわかる。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGおほほほほほ
0034デフォルトの名無しさん
NGNG一般教育:Pascal
貧民:C
0035デフォルトの名無しさん
NGNG〆(.. )メモメモ
0036山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGなぜかワラタ
0042デフォルトの名無しさん
NGNGhttp://wiki.ocaml.jp/
0043デフォルトの名無しさん
NGNGおそらくこのプログラム板の中でさえも
過半数はメーリングリストの略だと思っているだろう。
どんどんageてOcamlの凄さを伝えていこうぜ。
>>42
よっしゃ。早速俺のサイトで使うぞ。
PukiWiki(PHP)にしようかと思っていたけどやめだ。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG世間でいうところの plugin は適当なインタフェースを定義しておけば
Dynlink module でなんとかなると思うし。
ocamlopt でコンパイルできなくなるけど。
それとも dlopen とか使った方がよい?
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGMLをオブジェクト指向にした意味ってあるの?
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGモジュールがあれば十分だという人にはオブジェクト指向な部分は無用。
だから,何がうれしいのかと聞かれたら
オブジェクト指向なコード"も"書けるっちゅうとこではなかろうか。
使いたければ使え,使いたくなければ使うな,と。
要するにオブジェクト指向の部分はオプションだ。
0050デフォルトの名無しさん
NGNGMLのリンク集
旧: http://www.gin.or.jp/users/daikoku/lang/func/ml.htm
新: http://www.summa.jp/lang/func/ml.htm
初級ML講座
旧: http://www.gin.or.jp/users/daikoku/ml/mlkouza.txt
新: http://www.summa.jp/tutorial/plain/mlkouza.txt
0051デフォルトの名無しさん
NGNGobject は、状態を持ってしまうものを隠蔽するのに利用すると
結構使いやすい様な気がします。object は確かにいらないことは
いらないけど、状態を持たせた方が自然なものを functional に
するよりも、object にして隠蔽してしまうことはよくやります。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGになってるかな。もともとそういうものだという意識もあるのだろうけど、
「ム」の母音を出すようにすると意外とめんどくさい。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGりろー
きゃもー
0061デフォルトの名無しさん
NGNGCaml の発音の話題は、以前 ML でも出てたな。
0062デフォルトの名無しさん
NGNGOCaml → 岡村
0063デフォルトの名無しさん
NGNGこのスレ見切って「関数型言語Ocaml」で新スレたてれ。
0064デフォルトの名無しさん
NGNGオブジェクト指向言語志村
0065501
NGNG0066デフォルトの名無しさん
NGNGF#相談室 はダメでつか?
http://pc2.2ch.net/test/read.cgi/tech/1054523453/
0067デフォルトの名無しさん
NGNG>>63 言いだしっぺが立ててよ
0068向こうがdat落ちしたので再度カキコ
NGNGttp://www.miv.t.u-tokyo.ac.jp/~yabuki/tip/lisp/unknowable/godel.html
どなたか知恵を与えていただけないでせうか
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG真性アフォの>>1がいますw
ちゃーちゃーん山崎一番
http://pc4.2ch.net/test/read.cgi/swf/1062307555/
このスレを>>1-10までじっくりと読んでみてくださいね。
是非とも記念カキコをageでしていって下さいね。
0071デフォルトの名無しさん
NGNGUncaught Exception ocamlbrowserがない
0072デフォルトの名無しさん
NGNGあるフランス人は
かめる
って読んでいたような記憶が。
0073デフォルトの名無しさん
NGNG状態を持ってるものはADTで書きゃいーじゃん
dynamic dispatch とか使わねーならADTでじゅーぶん
0074デフォルトの名無しさん
NGNGもちろん object の方が色々出来るんだけど ADT で十分なものは ADT で良さそう。
0075デフォルトの名無しさん
NGNGtk 入ってないんでしょ
0076デフォルトの名無しさん
NGNGscheme を真似して、quote の代わりに lazy evaluation を使えば?
(なんのこっちゃ)
0077デフォルトの名無しさん
NGNGありがとうございます
それは最初に考えてみたのですが、lazy にした関数の部分評価
(Schemeでの"quasiquote", "unquote"に相当)する方法が解りません
多分 Lazy module の使い方がまだピンと来ていないのだと思います
やっぱり勉強が足りませんでしょうか
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG参考までに`(is-unprovable (value-of (',x ',x)))
このS式のquasiquoteを展開するとこうなる。
(mac`(is-unprovable (value-of (',x ',x))))
=>
(cons
'is-unprovable
(cons
(cons
'value-of
(cons
(cons
(cons 'quote (cons x '()))
(cons (cons 'quote (cons x '())) '()))
'()))
'()))
schemeはこの展開形からリストを新規作成してるだけなので、
部分評価とはちょっと違う気がする。(結果としてそう見えるんだけど)
0080デフォルトの名無しさん
NGNGlet g x = is_unprovable (x x)
g g
ではいかんのかな?
あ、-rectypes オプションつけて。
0081デフォルトの名無しさん
NGNGこういうメタな構造の値をMLの型理論で扱うのはやっぱり難しいのでしょうか?
>79
「部分評価」とは言いますが、どっちかというと「部分未評価」という感じなんですね(違う?)
勉強になりました
おやすみなさいです
0082デフォルトの名無しさん
NGNGその場合は
let g x = is_unprovable (lazy (x x))
とかやればいいのかな
008371
NGNGcygwin に入ってるtcl/tk(tcltk 20030901)は入ってんだけど・・・。
それじゃダメ?
すれ違いならすんません。
0084デフォルトの名無しさん
NGNG・・・あってる?
(g g) = is_unprovable (g g)
008588
NGNG008668
NGNG"-rectypes" はまだよく分かっていませんが興味深く感じます
時間がありましたらいろいろ試してみようと思います(済みません、今日は遊べません)
>82
困った事に、そこからさらに部分評価させる方法が解らないのです
>84
ちょっと違うと思います
(g g) を評価すると isUnprovable( valueOf( X( Hold( X ) ) ) ) の形で評価されます
この X を評価すると (g g) を評価したものと同じになる、ということです
しいて言えば X = (g g) とすると X = isUnprovable( valueOf( X( Hold( X ) ) ) )
となるという感じでしょうか?高階関数の未評価引数を省略しているので判り難いのですが
>85
それも解らない事の一つです
0087デフォルトの名無しさん
NGNG# let f = fun x -> x;;
val f : 'a -> 'a = <fun>
# let g = fun x -> x;;
val g : 'a -> 'a = <fun>
としとくと、
# f = f;;
- : bool = true
# (f,g) = (f,g);;
- : bool = true
ってなったから、うまいこと自前で遅延評価を作ってやれば比較はできるんじゃない?
ただし、
# (f = g);;
Exception: Invalid_argument "equal: functional value".
だし、
# (lazy (f 0)) = (lazy (f 0));;
Exception: Invalid_argument "equal: functional value".
だし。
0088デフォルトの名無しさん
NGNGなるほど、評価前の関数でも比較可能なのですね
# (f g)=(g f);;
Exception: Invalid_argument "equal: functional value".
うむむ
しかし、遅延評価は自前で用意する必要がありそうなのですね
大変参考になります
0089デフォルトの名無しさん
NGNG付属のサンプルプログラムの中のdouble.mlを実行すると
即座にぶちっと落ちてログイン画面に戻ってしまいました。
ほかのサンプルプログラムは全て実行できたのですが・・・。
何が問題なのか見当のつく方はいらっしゃいませんか。
RedHat9上で
http://caml.inria.fr/ocaml/distrib.html
にあるRedHat9向けのRPMを使っています。
lablglは
http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html
にあるlablgl-0.99.tar.gzです。
009089
NGNG同じ環境でlablglをうまく使えている人がいるならば、
lablglをコンパイルするときのMakefile.configを拝見しとうございます。
0091デフォルトの名無しさん
NGNGocaml インタープリタ syntax error 出しただけでこけちゃうんですけど・・・
(3.06 cygwin) どなたか簡単な対処法ご存知でない?
opt にしてないんだけどな・・・
0092デフォルトの名無しさん
NGNGそんなことないんだけど。recompile してみたら?
0093デフォルトの名無しさん
NGNG#load "stdlib.cma";; #load "graphics.cma";; open Complex;; open Graphics;;
let rec mandel z c n = if n > 63 then 64 else if (norm z) > 2.0 then n else
mandel (add (mul z z) c) c (n + 1);;
let col n b = if (n land (1 lsl b)) = 0 then 0 else 15 lsl (b * 4)
let color n = (col n 0)+(col n 1)+(col n 2)+(col n 3)+(col n 4)+(col n 5);;
let dx, dy={re=(0.5/.200.);im=0.}, {re=0.;im=(0.5/.200.)}
let rec draw_x x y z = set_color (color (mandel {re=0.;im=0.} z 0)); plot x y;
if x<200 then draw_x (x+1) y (add z dx)
let rec draw y z = draw_x 0 y z ; if y<200 then draw (y+1) (add z dy);;
open_graph " 201x201";;
draw 0 {re=(-1.6);im=(-0.1)};;
wait_next_event [Button_down];;
close_graph();;
0094デフォルトの名無しさん
NGNG"graphics.cma"がないと言われる。windowsだから?
0095デフォルトの名無しさん
NGNG009693
NGNGレスありがとう。反応があって嬉しい。
こちらもwindowsです。(WIN98SE + Ocaml3.06 Native MS)
以下を確認してくださいです。
(1)インストールディレクトリ\LIB に"graphics.cma"があるか。
(2)上のディレクトリを環境変数 OCAMLLIB にセットする。(95,98,MEの時)
(3)93>>のレスの内容を丸ごと"mandel.ml"という名前で、適当なディレクトリに保存して、
MS-DOS(CMD)プロンプトから "ocaml mandel.ml"で実行する。(必要ならパス付きで)
それから終了はウインドウ上をクリックです。そのまま窓を閉じると悲しい
状態になることがあります。
009793
NGNGほんとだ。 Readme.win に、
Native_MS Native_MinGW Cygwin
The_Graphics_library yes yes no
とありますね。
0098デフォルトの名無しさん
NGNGREADME.win32をみるとNative MS, Native MinGW, cygwinは
どれも一長一短ですね。
unix libraryがpartialでなければ迷わず再コンパイルするところですが…。
0099デフォルトの名無しさん
NGNGocamloptで、Graphicsを使うと
(環境変数INCLUDEを見てくれてないのか)gdi32.lib等が見つからないと言われますが、なんででしょうね?
Win32 Native版です。
0100デフォルトの名無しさん
NGNG自分の環境では言われないんだけど。
本当に path あってる? あるいは、どうやって追加している?
0101デフォルトの名無しさん
NGNGPATHはC:\Program Files\Objective Caml\bin、
gdi32.lib等はC:\Program Files\Microsoft SDK\libにありますが、
INCLUDEに追加しても-Iや-cclibに渡しても見てくれません、という状態です。
仕方ないから使う*.libだけコンパイルするディレクトリにコピー…
■ このスレッドは過去ログ倉庫に格納されています