関数型言語ML (SML, OCaml, etc.), Part 6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/06/15(月) 07:15:21MLは、確固とした理論的背景を持つ言語でありながら、
現実的なソフトの開発にも使用できる実用性を備えた言語です。
また、プログラミングの初心者が最初に学習する言語としても優れています。
総本山
Standard ML http://www.smlnj.org/
Objective Caml http://caml.inria.fr/ocaml/
前スレ
関数型言語ML(SML, OCaml, etc.), Part 5
http://pc12.2ch.net/test/read.cgi/tech/1186292994/
0151デフォルトの名無しさん
2009/07/26(日) 00:07:510152デフォルトの名無しさん
2009/07/26(日) 20:13:20fun (x:('a->'b)->(z:'a->'b)) z -> z;;としたところ
- : (('a -> 'b) -> z:'a -> 'b) -> 'c -> 'c = <fun>
のように受理されましたが、3つのうちの最初、z:'aのz はどういう意味があるのか
わかりません。
fun (x:('a->'b)->(z:'a->'b)) -> z;;
としてもzは拘束されていないようですし。
0153148
2009/07/26(日) 21:13:50宣言できるということですよね?やりかたを教えていただけますか?
0155デフォルトの名無しさん
2009/07/26(日) 22:59:56ただ、関数の引数などにアノテーションすることで
関数の定義範囲を狭めることは出来る
普通の定義
let f x = x;;
型全体
let f x : int = x;;
let f x : int ->int = x;;
引数
let f (x:int) = x;;
let f (x:int->int) = x;;
>>148の上の型は、これを使って
Yコンビネータの型をint->intで制限したもの
0156デフォルトの名無しさん
2009/07/26(日) 23:00:460157デフォルトの名無しさん
2009/07/27(月) 10:29:45背景説明無しに、間違った用語で質問されても答えられません。
逆に説明があれば、多少間違っていても回答者の方で正しく解釈できます。
148 だけだとホントに意味不明だが 153 からすると、C における int x;
の様に「変数を宣言」できるか、というのが質問の意図だと思いますが、
ML では値の無い「識別子の束縛」は出来ません。
154、お前は未来に向けて話しているのか。
>>152
z:'a の z は識別子ではなくラベルです。後の z とは関係ありません。
文法をちゃんと確認して、ラベル付き引数の解説を読んでください。
0158デフォルトの名無しさん
2009/07/28(火) 12:36:020159デフォルトの名無しさん
2009/07/29(水) 00:57:410160デフォルトの名無しさん
2009/07/29(水) 13:23:33ありがとうございます。Yコンビネータのようなものを作ろうとしていました。
非常に参考になりました。
>>154が回答に感謝しているのは
>>150の、出来る、が回答になっていると思ったからなのですが。
0161デフォルトの名無しさん
2009/07/29(水) 21:32:04と
Yコンビネータを定義できる
は100光年くらい離れてる気がする
0162デフォルトの名無しさん
2009/08/15(土) 12:47:34(3///5) == [3;4;5] みたいな感じ。
演算記号は何が適当ですか?
0163デフォルトの名無しさん
2009/08/15(土) 15:34:300164デフォルトの名無しさん
2009/08/15(土) 17:40:51List.iter print_int (1--100)
とかですか? いいですね。見やすいです。
0165デフォルトの名無しさん
2009/08/22(土) 15:26:49OCamlの標準ライブラリに無いものは自分で実装しているのですが、SMLとの
コンパチを取るライブラリなどがあったりするのでしょうか?
0166165
2009/08/22(土) 22:50:51のことが出来るのですが、OCamlではUnixのmakeを使うのが普通なのでしょうか?
OCamlのドキュメントではmakeを使った例が書いてありました。
それとも、omakeというものがあるようですが、これを使うのが今時のやり方で
しょうか。
0167デフォルトの名無しさん
2009/08/22(土) 23:24:330168デフォルトの名無しさん
2009/08/23(日) 21:30:22http://www.inria.frは普通に繋がるだけに。
0169デフォルトの名無しさん
2009/08/24(月) 09:06:37OCaml の stdlib は「標準ライブラリ」にあらず、 OCaml 自身をコンパイル
するために最低限必要な関数を集めただけと考えたほうが幸せです。
「次世代」標準ライブラリ候補として Extlib, OCaml Batteries Included, Jane Street Core
などありますからそれのウチ好きなのを使ってください。(Batteries は Extlib を内包しているはず)
ビルドは make か OCaml 付属の ocamlbuild か omake か、別に何でも良いんじゃない?
- GNU make : どこにでもある。他でも使える。枯れてる。
- ocamlbuild : OCaml に付属。全く使えない。
- omake : 超強力、普通インストールされていない。強力過ぎて一線を超えた使いかたが難しい。
0170165
2009/08/24(月) 23:26:43ありがとうございます。
ExtLib, Batteriesの双方に同じ名前のモジュールが含まれていたので疑問に思って
いたのですが謎が解けました。SML Basis Libraryにあるような関数は、名前違いで
大体ExtLibでサポートされているようで安心しました。
ビルドツールはGNU makeを主に使ってきたのですが、omakeはファイル更新の
チェックが素晴らしいようなので、omakeを使ってみます。
0171デフォルトの名無しさん
2009/08/25(火) 11:41:33追加インストールとか面倒だし
0172デフォルトの名無しさん
2009/08/25(火) 12:34:520173デフォルトの名無しさん
2009/09/01(火) 14:33:390174デフォルトの名無しさん
2009/09/01(火) 20:45:28おもろかったけどgolfとかコンパイラ改造とかネタが裏街道過ぎて
実用志向のユーザー増えねえだろこれじゃ、とか思った
0175デフォルトの名無しさん
2009/09/01(火) 22:15:16Golfの話は意外と参考になった。演算子定義周りとか、普段あまり使わないから。
演算子によって優先順位が固定されているの勉強になった。
あとObj.magic。あれは反則技だろw
0176デフォルトの名無しさん
2009/09/07(月) 05:40:380177デフォルトの名無しさん
2009/09/09(水) 17:30:370178デフォルトの名無しさん
2009/09/09(水) 17:32:57$ ./configure
$ make world
・・・
gcc -o ocamlrun \
prims.o libcamlrun.a -lm
libcamlrun.a(main.o):main.c:(.text+0x26): undefined reference to `caml_expand_command_line'
libcamlrun.a(sys.o):sys.c:(.text+0x4ea): undefined reference to `caml_win32_random_seed'
libcamlrun.a(startup.o):startup.c:(.text+0x936): undefined reference to `caml_signal_thread'
libcamlrun.a(signals_byt.o):signals_byt.c:(.text+0x46): undefined reference to `caml_win32_signal'
libcamlrun.a(signals_byt.o):signals_byt.c:(.text+0xab): undefined reference to `caml_win32_signal'
collect2: ld returned 1 exit status
・・・
0179デフォルトの名無しさん
2009/09/09(水) 18:09:02OCaml の mingw のビルドを参考にしたら?
JoCaml には付いて無いけど OCaml の README.win32 に書いてある。
0180デフォルトの名無しさん
2009/09/09(水) 20:36:00ありがとうございます。
cp config/m-nt.h config/m.h
cp config/s-nt.h config/s.h
cp config/Makefile.msvc config/Makefile
config/Makefileの中身のOTHERLIBRARIESからlabltkを削除し、PREFIXをインストールしたいディレクトリに変更し、
make -f Makefile.nt world
を実行したまでは良かったのですが、
make[1]: *** No rule to make target `win32.c', needed by `win32.o'. Stop.
make[1]: Leaving directory `/d/tmp/jocaml-3.11.1/byterun'
make: *** [coldstart] Error 2
と出てストップしてしまいます。
jocaml-3.11.1にはwin32.cが入っていないようですが、これは不具合ということでよろしいでしょうか。
0181デフォルトの名無しさん
2009/09/09(水) 21:23:000182179
2009/09/09(水) 21:31:19同じバージョンの OCaml から引っ張って来たら運が良かったらビルドできるかも知れないが、
こんなトコで聞くくらいだったら JoCaml の人に win32.c 無いって聞く方がいいんじゃない?
0184デフォルトの名無しさん
2009/09/09(水) 22:30:08それで動く保証はないけど
0185デフォルトの名無しさん
2009/09/09(水) 22:31:050186デフォルトの名無しさん
2009/09/09(水) 22:34:59あ、Makefile.mingwでやりました。
上のはコピペで修正し忘れていました。
0187デフォルトの名無しさん
2009/09/09(水) 22:36:17JoCamlでアプリを書くつもりなので、Windowsでないとダメなんですよ。
0188デフォルトの名無しさん
2009/09/09(水) 22:47:01イバラの道じゃないかねー。Luc に聞かんと誰もわからんよ。
ちなみに win32.c は jocaml のレポから随分前に消えてる。
0189デフォルトの名無しさん
2009/09/09(水) 22:49:38We distribute JoCaml as sources. Those sources are for Unix systems
と書いてあるが、これは読んだのか?
0190デフォルトの名無しさん
2009/09/11(金) 20:25:19リスト内包標記とか where 節とか open Module in とかあってびびった
使ってる人いる?
0191デフォルトの名無しさん
2009/09/12(土) 11:44:43open in はオーバーヘッドを理解してれば使える。
0192デフォルトの名無しさん
2009/09/17(木) 12:29:490193デフォルトの名無しさん
2009/09/17(木) 12:56:31let module M' = struct open M let v = e end in v
に変換されるので、ブロックを一つ作る。
普通はたいしたこと無いが、再帰関数中で open M in するのは少し考え物だ。
0194デフォルトの名無しさん
2009/09/17(木) 13:09:21let rec f x = open M in e (* e 中に f の再帰呼出あり *)
とか書くと f の呼出しごとにブロックが出来て、時間とメモリを食う。
0195デフォルトの名無しさん
2009/09/17(木) 13:13:490196デフォルトの名無しさん
2009/09/19(土) 14:39:440197デフォルトの名無しさん
2009/09/21(月) 22:22:320198デフォルトの名無しさん
2009/10/18(日) 14:08:130199デフォルトの名無しさん
2009/10/31(土) 11:31:30http://www.cs.tufts.edu/~nr/comp150fp/archive/richard-bird/sudoku.pdf
0200デフォルトの名無しさん
2009/11/09(月) 04:34:20実際に読んだ方いましたら、感想を聞かせてください。
0201デフォルトの名無しさん
2009/11/09(月) 23:09:48> 実際に読んだ方いましたら、感想を聞かせてください。
たった今、ゴミだからいらないという人にもらいました。確かにゴミです。ネタとしてならどうぞ。
0202デフォルトの名無しさん
2009/11/10(火) 00:11:27そこについては別にひどくは無かったと思ったよ。
0203デフォルトの名無しさん
2009/11/10(火) 04:23:58どのページを開いても何かツッコミどころがあるというある意味貴重な本。
値段も安くはないし絶対にお薦めしない。
0204デフォルトの名無しさん
2009/11/10(火) 21:20:02http://rainyday.blog.so-net.ne.jp/2006-11-25
http://shuns.sakura.ne.jp/?%BD%B5%B5%AD%2F2006-4-
これ出た当時はオライリーのフランス語のやつ(当時すでに絶版)以外ではこれしか本がなかったけど
日本語書籍がいくつもある今買う価値はないと思いますね。
0205デフォルトの名無しさん
2009/11/12(木) 00:57:52継続してれば、有望だと思ったんだけどな・・・ > SML#
0206デフォルトの名無しさん
2009/11/14(土) 00:34:44apressの書籍ってほとんどハズレだと思う
これもハズレだったよ
0207デフォルトの名無しさん
2009/11/14(土) 02:34:17http://namidame.2ch.net/test/read.cgi/hidari/1257990721/
0208デフォルトの名無しさん
2009/11/17(火) 02:45:270209デフォルトの名無しさん
2009/11/17(火) 13:34:53しかし,パラメータの値には様々な見解がある.
N = R_s * f_p * n_e * f_l * f_i * f_c * L
N:道路に落ちている軍手の数
R_s:軍手の年間生産量
f_p:軍手を使用する作業の割合
n_e:軍手を屋外で使用する割合
f_l:軍手が使用される作業の割合
f_i:軍手を着脱する回数
f_c:軍手の移動距離
L:道路上の軍手の寿命
0210デフォルトの名無しさん
2009/11/17(火) 17:11:18誰か研究してくれ
0211デフォルトの名無しさん
2009/11/17(火) 23:27:170212デフォルトの名無しさん
2009/11/17(火) 23:53:580213デフォルトの名無しさん
2009/11/18(水) 00:15:00ほらよ。
N = R_s * f_p * n_e * f_l * f_i * f_c * L
N:道路に落ちているパンティーの数
R_s:パンティーの年間生産量
f_p:パンティーを使用する作業の割合
n_e:パンティーを屋外で使用する割合
f_l:パンティーが使用される作業の割合
f_i:パンティーを着脱する回数
f_c:パンティーの移動距離
L:道路上のパンティーの寿命
0214デフォルトの名無しさん
2009/11/18(水) 01:10:3840代未満はパンツかショーツと呼ぶ。
0215デフォルトの名無しさん
2009/11/18(水) 01:23:51ウーロン知らないの?
0216デフォルトの名無しさん
2009/11/18(水) 02:10:39例:
「お茶」→「俺は紅茶が飲みたい。お茶といえば緑茶じゃなくて紅茶でしょ。緑茶とかジジくさいし。」
0217デフォルトの名無しさん
2009/11/18(水) 02:30:26類似定理に「キャロライン洋子を知っている人は1969年以前生まれ」がある。
0218デフォルトの名無しさん
2009/11/18(水) 03:07:49N = R_s * f_p * n_e * f_l * f_i * f_c * L
N:道路に落ちているブラジャーの数
R_s:ブラジャーの年間生産量
f_p:ブラジャーを使用する作業の割合
n_e:ブラジャーを屋外で使用する割合
f_l:ブラジャーが使用される作業の割合
f_i:ブラジャーを着脱する回数
f_c:ブラジャーの移動距離
L:道路上のブラジャーの寿命
0219デフォルトの名無しさん
2009/11/18(水) 03:16:530220デフォルトの名無しさん
2009/11/18(水) 03:50:1072年生まれでびっくり日本新記録を見ていた私はなんですか?
0221デフォルトの名無しさん
2009/11/18(水) 12:01:0672年生まれなら13歳中一まで見れていたことになる。
特別なことはなにもないと思うが。
マッハGoGoGoとか鉄腕アトムの第一作目をリアルタイムに見ていたとかいうなら驚愕ものだが。
0222デフォルトの名無しさん
2009/11/18(水) 19:34:270223デフォルトの名無しさん
2009/11/18(水) 20:22:40最近はむしろ尊敬するようになってきた。
なんつーか、歳を重ねるってのはそれだけで立派だよ。
対して俺はゆとりに「この昭和生まれが」と言われてショックを受けた
0224デフォルトの名無しさん
2009/11/18(水) 20:26:52rougai
0225デフォルトの名無しさん
2009/11/18(水) 21:29:42そうは思わない
> 最近はむしろ尊敬するようになってきた。
ああ・・・ついにお前も老害の仲間入りか。
人間というのは自分の置かれた環境や立場によって考え方を変える生き物だというだけのこと。
お前が老害ジジイを擁護するようになったということは、
老害扱いされる時期がもうすぐ目の前に来ている証拠なんだよ。
たしか60歳以上の老人たちは日本が持っているカネの55%を持っているんだよな。
そしてそのカネを何に使うかというアンケートによると、
がんばってきた自分へのご褒美に贅沢するために使うのだそうだ。
若者が苦しんでいるときにそんなことを許していいわけがないだろ。
老人を過剰に保護するのをやめても老人は困らないし、
財源確保のために老人たちから搾り取ればいいと思う。
0226デフォルトの名無しさん
2009/11/18(水) 21:37:01定年を設けている企業や官公庁が大半だと思うけど、それって年齢差別だよね。
60歳でもまだまだ働ける人がほとんどなのに定年で辞めさせるのはどうかと思う。
そうする代わりに、経営者に自由に解雇する権利を与えて、年功上列・終身雇用も撤廃して、
終身雇用に安住している無能なやつ(老害)をどんどん解雇していけばいいと思う。
無能な奴は一生平社員の単純労働でこき使えばいいよ。
長い間単純労働してるからといって才能の無い奴を無理に昇進させる必要もないと思う。
0227デフォルトの名無しさん
2009/11/18(水) 21:41:570228デフォルトの名無しさん
2009/11/18(水) 21:42:48歳を重ねるだけで得られるようなものなら誰でも手に入るから価値は無い。
0229デフォルトの名無しさん
2009/11/18(水) 21:45:57解雇すればいいのに、こき使うの?
0230デフォルトの名無しさん
2009/11/18(水) 21:49:56もっと若者と同じように扱えばいいのにね。
具体的にどこか体が故障している人を障害者認定して、
障害者として文化的な生活をおくるために補助をするなら分かるけど、
高齢者だからという理由だけで保護するのは過保護というものじゃないかな。
0231デフォルトの名無しさん
2009/11/18(水) 21:52:310232デフォルトの名無しさん
2009/11/18(水) 21:53:24団塊世代は頭が鈍くて経験も役に立たないし物事を計画的にするのも下手だし散らかすのだけは一流で後片付けのことは微塵も考えないゴミなんだよなぁ
0233デフォルトの名無しさん
2009/11/18(水) 21:53:31> がんばってきた自分へのご褒美に贅沢するために使うのだそうだ。
金が回るならいいことじゃないか
0234デフォルトの名無しさん
2009/11/18(水) 21:54:240235デフォルトの名無しさん
2009/11/18(水) 21:56:33ところが、使った分が戻っていくのが世にも奇妙な現象
0236デフォルトの名無しさん
2009/11/18(水) 21:57:380237デフォルトの名無しさん
2009/11/18(水) 22:02:41ダメ、ジジババはコンピュータ音痴だから。
0238デフォルトの名無しさん
2009/11/18(水) 22:17:02南無阿弥陀仏
0239デフォルトの名無しさん
2009/11/25(水) 12:41:380240デフォルトの名無しさん
2009/11/26(木) 15:44:50おいしいところだけ食べてトンズラとかマジきめえw
自分たちの責任を後世に押し付けて、自分は今まで楽しく稼いだお金で楽しく老後を過ごす予定なのか?
そんなことが許されるわけがない。
世の中みんなが辛いと思っているんだから自分だけ良い思いをしようとするなんて許されるわけがない。
団塊世代は身勝手だ。
搾取されるべきは団塊世代だ。
金があるんだから搾取してもかまわないだろ?
0241デフォルトの名無しさん
2009/11/26(木) 16:25:40特にJALやJRや某新聞社の労組
それから日教組
こいつらが日本のまじめな生産者の利益を貪ってる
0242デフォルトの名無しさん
2009/11/26(木) 16:27:140243デフォルトの名無しさん
2009/11/26(木) 16:47:17会社は正社員じゃなくて派遣を使いたがる
派遣ピンハネ業だけが儲かる
0244デフォルトの名無しさん
2009/11/26(木) 16:52:240245デフォルトの名無しさん
2009/11/26(木) 16:53:19正社員を派遣すればいいんじゃん
0246デフォルトの名無しさん
2009/11/26(木) 18:11:29コピペした奴が自分で反応してんのか
どっちにしてもアホだ
0247デフォルトの名無しさん
2009/11/26(木) 18:58:16面倒だから経営も外注するか。
労組嫌ってるやつは公務員か?死ねよ
0248デフォルトの名無しさん
2009/11/26(木) 19:03:430249デフォルトの名無しさん
2009/12/06(日) 22:09:27欧州のどこだかは、派遣使うとそれだけ割高になるような法律になってるとか
聞いたことある。
0250デフォルトの名無しさん
2009/12/07(月) 00:49:50プログラマの派遣なら、正社員の派遣が主流じゃないか?
>>249
法律なんか作らなくても、市場原理に任せておけば派遣のほうが高くなる。
レンタルとリースのどっちが割高かってこと。
むしろ、法律によって市場を歪めているのが諸悪の原因。
■ このスレッドは過去ログ倉庫に格納されています