関数型プログラミング言語ML

このエントリーをはてなブックマークに追加
933山崎 渉:03/07/15 14:09

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
934929:03/07/15 16:34
>>930
とりあえず,sml-modeでやってます.いろいろいじったら,そこそこ見やすくなった.
>>932
これがMacで走ればねぇ(エミュ不可).
935デフォルトの名無しさん:03/07/15 20:41
擬似乱数使いたいんですけど、
擬似乱数の使い方は試行錯誤でなんとかなったものの、
(擬似乱数の初期化用の)現在の時間の取得方法が分かりませんでした。
どうやればいいんでしょうか?
936デフォルトの名無しさん:03/07/15 20:41
コギャル・OL・人妻たちのもろ画像がたくさん見れる!!
http://www3.free-city.net/home/espresso/princess/peach.html
>>935
Time.now ();
のことかな。
938デフォルトの名無しさん:03/07/15 22:33
Random.self_init ()
939デフォルトの名無しさん:03/07/15 23:10
>>937
うちのには Time モジュールってのは無いようです。
Objective Caml version 3.06 なんですけどね...。

>>938
それでいけました!
self_init...そんな関数名、思いつかんわけだ。

ありがとうございました。
940デフォルトの名無しさん:03/07/15 23:12
>>939
リファレンス見れば載ってるでしょ?
941デフォルトの名無しさん:03/07/15 23:23
>>940
http://caml.inria.fr/ocaml/htmlman/index.html
発見。これですか。
http://caml.inria.fr/ocaml/htmlman/libref/Random.html
なるほど。Random.self_init も載ってますね(当たり前だ)。
今から DL して家宝にします。
942デフォルトの名無しさん:03/07/18 12:34
そろそろ次スレ。>>950 が立てる。
関数型プログラミング言語のメーリングリストのスレかと思った。
944デフォルトの名無しさん:03/07/18 14:42
プログラミングMLと定理証明システムはもうなんの関係もないんですか?
>>944
今でもMLで開発されてるんじゃないの?
MLで書かれた定理証明系の教科書も出てたと聞いた様な。
COQ とか OCaml で書かれてますが
947デフォルトの名無しさん:03/07/18 23:04
OCaml なら ML の派生言語なのでギリギリ OK 。
>>946
定理証明システムという名のソフトウェアは
何で書かれているのかが問題となるようなものなんですか?
そんなことは無いでしょう。
>>948
話の流れをよくよみましょう ;-p
>>949
僕も >>944 以降の話の流れがよくわかりません。
教えてください。
このスレを“定理証明”で検索すると、>>586-592 あたりが
ヒットしますが、関係ありません?
>>951
ありがとうございます。関係あります。
過去ログ読んで、自分なりに少し考えてから出直してきます。
953デフォルトの名無しさん:03/07/20 01:06
新スレ立ってから10日たつが、まだ10しかレスつかない。どーする?
955デフォルトの名無しさん:03/07/30 14:06
どーするとか言われても
>>955
>>954は削除人
957山崎 渉:03/08/02 02:11
(^^)
958デフォルトの名無しさん:03/08/07 17:39
OCamlとStandard MLってどれぐらい違うんですか。
Standard MLを大堀先生の本で12章ぐらい(ストラクチャとかモジュール)
まで勉強したんですが、OCamlの方が評判よさそうなので
、そんなに差がないなら乗り換えようかと。
乗り換えましょう乗り換えましょう
960デフォルトの名無しさん:03/08/07 23:27
差があるから乗り換えましょう
961デフォルトの名無しさん:03/08/07 23:29
コスプレ度NO1。ケンタッキーのバイト娘です。
制服着用のままフェラ、本番をこなしてくれます。
性格の非常にいい子で撮影者のなすがままです。
テレクラでキャッチしたようですがこんないい子がいるのならいってみようかなー。
http://www.geisyagirl.com/
962929:03/08/08 13:48
>>960
sml/nlに対するOCamlの利点は?
963デフォルトの名無しさん:03/08/13 19:32
age
http://ocaml.jp/
のOJUGってOcaml Japan User Groupの略なの?
Cの初心者本にスピードアップの手段として、
変数、関数にできるだけchar、intを使い、floatなどをさける。
と書いてあるんだけど、ocamlでも

# float_of_int(3) +. 3,4;;
- : float = 6.4

とするよりも

# 3 + int_of_float(3.4);;
- : int = 6

としたほうがいいの?

後者のほうが+の後に点をつけなくてすむから楽だし
それで実行速度があげればいいんだけど。どうだろうか。
966デフォルトの名無しさん:03/08/14 19:34
>>965
計ってみれば?
どやって?
>>965
その 2 つのコード、返す値が int と float で異なるけどいいの?
なにをしたいのかよくわかんない。

とりあえず cygwin port の ocaml インタプリタで以下のコードをそれぞれ 10000000 回走らせて大体の時間を計ってみました。

float_of_int(3) +. 3,4 -- 4.0 秒
3 + int_of_float(3.4) -- 3.4 秒
float_of_int (3 + int_of_float(3.4)) -- 4.7 秒 (参考)

つまり (結果的には) 後者の方が速いってことですね。
ただし C の場合で float より char, int を使ったほうが速くなるというのとは、
速くなる理由がやや違って、ocaml ではガベージコレクタが int を特別扱いしているためかなと思います。

蛇足。ocaml の float は C でいう double の精度を持ってますよ。
>>968
俺のためにありがとう。
じゃあ、ここ↓のネイティブコードってどうやって使うんですか?
http://caml.inria.fr/oreilly-book/html/book-ora068.html

ocamlcでコンパイルしたらexeファイルが出来上がるので使えるのですが
ocamloptだと.cmiファイルと.cmxファイルしかできません。
970山崎 渉:03/08/15 15:23
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
971デフォルトの名無しさん:03/08/15 18:40
CからML使うメリットって何?
一行目に #!/usr/local/bin/ocaml と書いてある test.ml があって、
./test.ml で実行できるのですが
#!/bin/sh
./test.ml
というスクリプトが実行できません(test.ml が sh として実行されているようです)。
明示的に /usr/local/bin/ocaml test.ml と書けば問題無いのですが、どうすれば上のスクリプト
を実行できるでしょうか。ocaml を cgi として使いたいです。
>>972
一番簡単なのは test.ml をコンパイルしてしまうことです。それなら
動きますよ、多分。その方が早いし。

シェルスクリプトになってしまう理由は謎。だれか教えてプリーズ。
こっちの環境では ./test.ml で実行しようとしても sh として
実行されてしまった。
strace ./test.ml とすると、execve で Exec format error と
言われてこけてしまっているみたい。分かったのはそれだけ。
>>973
コンパイルしたら動くんですけど、めんどくさいんですよね。
sh でも csh でも tcsh でも ./test.ml だとシェルスクリプト
として実行されてしまいました。zsh が例外のようです。
解決しました。
ocamlmktop -custom -o mocaml
して mocaml 使えばよいみたいです。
976デフォルトの名無しさん:03/08/20 20:58
shell$ cat hello.mls
#!/bin/sh
# (*
exec ocaml "$0" "$@"
*)
load "stdlib.cma";;

print_string "Hello, world!\n";;
shell$ chmod a+x hello.mls
shell$ ./hello.mls
Hello, world!
shell$

ocamlfind(findlib, topfind)を使うなら
shell$ cat hello2.mls
#!/bin/sh
# (*
exec ocaml "$0" "$@"
*)
use "ocamlfind";;
#require "stdlib";;

print_string "Hello, world!\n"
shell$

ocamlfindを使えば依存関係も-I指定もいらないので楽。
おまえ達へ。
初心者の俺が聞いてやるので教えてください。
Autoexec.batへの環境設定で

set path=d:\ocaml\bin
set ocamllib=d:\ocaml\lib

とすればいいのですか?
ocamlでosはかけるのか?
prolog で os を書こうとしたことがあるぐらいだから
OCaml でもかけるでしょう。prolog で OS は、prolog machine の上で、
ですが。

ただ、メモリ管理が問題になりそう。それさえ適当にクリアすれば書ける。
そしてそれは十分にクリア可能。

昔 Lisp Machine というものがあったけど ML machine とか作らない
かなー。10年先は C じゃなく ML が標準になっていることを望む。
OCaml の勉強をしようと思って、手始めに↓をOCamlに翻訳しようと思っていきなり挫折w

ttp://www.miv.t.u-tokyo.ac.jp/~yabuki/tip/lisp/unknowable/godel.html

どなたか知恵を与えていただけないでせうか
981デフォルトの名無しさん:03/09/06 10:48
>> 978こんなのがあるらしい。動かした事ないが。ttp://mynos.sourceforge.net/ちょっと見た感じだとbyte codeで動作してるようだが。
982981
うへ、エンコード間違えた。
改行されてなくてゴメソ