- 1 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 07:15:21 .net]
- 関数型言語MLについて語るスレッドです。
MLは、確固とした理論的背景を持つ言語でありながら、 現実的なソフトの開発にも使用できる実用性を備えた言語です。 また、プログラミングの初心者が最初に学習する言語としても優れています。 総本山 Standard ML www.smlnj.org/ Objective Caml caml.inria.fr/ocaml/ 前スレ 関数型言語ML(SML, OCaml, etc.), Part 5 pc12.2ch.net/test/read.cgi/tech/1186292994/
- 464 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 21:34:22.91 .net]
- >>456
いや。。。 haskellもMLの子孫なんだが。。。
- 465 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 21:36:14.27 .net]
- >>456
俺はHaskell→OCamlと来た。 どっち先でもいいし、両方やればいいんじゃないだろうか。 片方しかやっちゃいけない決まりはないんだし。 面白いことは何でもやるべきだよ。 ミニ四駆だって、マグナムセイバーを買う傍ら、ソニックセイバーも買っただろ。それと同じ。
- 466 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 22:15:41.84 .net]
- そんなことはどうでもいい。OCamlのサイトが404だ。
caml.inria.fr/ocaml
- 467 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 23:17:43.26 .net]
- げ、ほんとだ
- 468 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 23:23:32.07 .net]
- すごいタイミング
>>456にはOCamlと縁が無かったんだな。。。
- 469 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 23:29:26.27 .net]
- ついにオワコンか
- 470 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 23:50:18.39 .net]
- OCamlがOCamlとして生まれ変わった際のゴタゴタだそうだよ
- 471 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:38:50.21 .net]
- twitter.com/#!/camlspotter/status/97519093602717696
>描いたのは俺! >RT @y_echo >RT @kinaba: なにがあったのwww >RT @kikx これは変わりすぎだろ! >RT @yoshihiro503 ちょ、 OCaml のサイトが激しくイメチェンしてる caml.inria.fr
- 472 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 08:56:35.19 .net]
- OCamlってもう手に入らないん?
- 473 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 10:15:28.29 .net]
- >>465
twitter.com/#!/camlspotter/status/97683309177475073 >一つだけ皆さんに言っておきます。毎年この時期には OCaml には何かが起きます。 >それはリア充関係者がバカンスに行ってしまって連絡が取れなくなるからです。 > RT @ytomino ocamlがついに滅んだと聞いて(遅い twitter.com/#!/camlspotter/status/97685810127716353 >てか週末にサーバ不調になったら48時間止まるのあたりまえやろ?人間として。 twitter.com/#!/camlspotter/status/97686190618181632 >と haskell.org が落ちたときには wktk してた人が言っても説得力ありませんな とりあえずフランスの月曜日昼(日本時間21時ごろ)まで待ちましょう。 それまでに復旧しなければ長期化確定ですね。
- 474 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 10:34:00.78 .net]
- つ proofcafe.co.cc/ocaml/
- 475 名前:デフォルトの名無しさん [2011/08/01(月) 22:02:08.55 .net]
- >>466
直らんね。もうしばらく待つか。
- 476 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 22:10:14.76 .net]
- 復活したね
- 477 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 18:02:01.87 .net]
- Lisp族はいいぞ。でもclojureを触っているとhaskellの影響がかなり大きい。
ocamlも触ってみたいけど、いまHaskell勉強中なんだ。たぶん、来年くらいには やれればな。HaskellってLispと同じでプログラム作成までの抽象化も含めた 戦略を練るのに時間がかかる言語って感じがしました。Ocamlも同じなんだろうね。
- 478 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 20:08:11.41 .net]
- haskellはデータ構造を作るプログラミングになるって、山本和彦さんが言ってた
- 479 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 20:23:02.98 .net]
- >>470
Haskell影響は並列周りでしょ。 そもそもSTMはHaskell由来じゃないし。 他はもろLisp直系じゃん。
- 480 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 21:58:52.67 .net]
- >>472
見た目だけで話してるでしょ? 実際に触ってみればわかるけど、無限ストリーム近辺の関数はHaskellと かなり近いよ。takeとかその辺のことね。common lispでも自作する方法は あってもこの手の物は標準でないしね。 だから、リストの取り扱いってがhaskellに近くなってる。 >>471 なるほど
- 481 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 23:33:03.74 .net]
- takeはHaskell以前からある。
- 482 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 02:04:20.65 .net]
- >>472
> そもそもSTMはHaskell由来じゃないし。 でも中興の祖はHaskellの人(Tim Harris)じゃないっけ?
- 483 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 02:21:43.19 .net]
- それはそう。Monadの経験が役に立った。
- 484 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 09:37:38.27 .net]
- >>474
ミランダとかなの?よくしらないけど(wikiでちょっと見たけど、 haskellの親玉っぽかった。) それはともかく、Clojureが関数型の大きな影響をかんじるのは イミュータブルなところかも。あれのお陰で、副作用をもたせようと 思ったら基本的にSTMの部分を活用しなきゃならない。(java固有の ライブラリは例外的なんだけど。)それと遅延評価言語だって ところがcommon lisp を触ってる時よりhaskellの影響を感じやすいのかも。 あとは内包表記かな。wikiにはlisp,ML, haskell erlangが影響を受けた言語 とかかれている。
- 485 名前:デフォルトの名無しさん [2011/08/19(金) 10:50:16.31 .net]
- R診たいなことが全部できるMLないのかよ。
- 486 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 21:56:29.91 .net]
- 卒業研究でOCamlのライブラリ作ってます。
おもしろいことありますでしょうか?
- 487 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 23:59:49.52 .net]
- SML#の新verがひっそり出てた
- 488 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 23:23:23.61 .net]
- >>479
どんなライブラリでしょうか?
- 489 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 11:44:54.04 .net]
- >>479
どんなライブラリをつくったら面白いでしょうか? なのか ライブラリを作ることはテーマとして面白味があるでしょうか? なのか。
- 490 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 20:28:58.48 .net]
- ^^;
- 491 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 20:52:03.96 .net]
- OpenFlow コントローラのライブラリなどはいかが?
比較的、ホットなトピックだと思うけど。 www.google.co.jp/search?q=functional+reactive+programming+openflow
- 492 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 14:23:07.44 .net]
- MLの型推論の部分だけ「俺言語」の中に取り込みたい
型推論の部分だけ分かりやすくコンパクトにまとめられたコードどこかにないでしょうか
- 493 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 15:11:00.44 .net]
- >>485
en.wikipedia.org/wiki/Hindley%E2%80%93Milner
- 494 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 15:56:30.36 .net]
- >>485
このテキストの17章 www.scala-lang.org/docu/files/ScalaByExample.pdf タイガー本の16章 www.cs.princeton.edu/~appel/modern/ml/
- 495 名前:365 mailto:sage [2011/09/29(木) 18:07:57.87 .net]
- >>485
Prolog で型チェック:Rainy Day Codings:So-net blog rainyday.blog.so-net.ne.jp/2008-06-16 題名は型チェックだけど、コードはまぎれもなく型推論
- 496 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 19:09:02.35 .net]
- ああPrologだから単一化で型推論が起きるのか。
- 497 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 18:43:07.61 .net]
- prologで型推定が一番楽にできそう
しかし返値しか推定してないね
- 498 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 15:33:53.10 .net]
- SMLやろうと思うんだけど、関数書いたファイルはどこ入れときゃいいの?
- 499 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 19:31:29.68 .net]
- WinにもOCaml3.12.1きてるー
ttp://gallium.inria.fr/~protzenk/caml-installer.html
- 500 名前:sage [2011/10/06(木) 20:07:16.49 .net]
- >>492
SML/NJの場合だと、適当なファイル(例えばhoge.sml)に保存して、保存した フォルダでNJの対話環境を起動して、 use "hoge.sml" とすればよい。useはカレントディレクトリからソースを読み込む関数で、 カレントディレクトリの取得/変更は、 OS.FileSys.getDirとOS.FileSys.chDirでできる。
- 501 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 21:24:34.13 .net]
- >>493
ありがとう!
- 502 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 22:10:01.73 .net]
- queue.acm.org/detail.cfm?id=2038036
これみるとC#とかやってられんな
- 503 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 22:44:28.70 .net]
- 型推論があるから簡潔になるのか
パターンマッチがあるから簡潔になるのか
- 504 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 22:47:43.98 .net]
- 両方
- 505 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 23:19:58.73 .net]
- 高階関数とカリー化も簡潔に書くのに一役買ってる
- 506 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 07:40:42.96 .net]
- >>495
ひどいよな。C#じゃ複雑なデータ構造を扱おうなんてすると沼じゃないか! 今Haskellの勉強をしててOcamlは読んだことはなかったんだけど 読めるもんだなとも思った。
- 507 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 07:48:35.09 .net]
- The C# code, while functionally equivalent, looks cluttered,
with the real structure obscured by syntactic noise. 事実だけど、辛辣だな。
- 508 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 11:38:18.36 .net]
- >>499
関数型言語群はMLの影響が強いからね。 C言語系という言い方では、ML系と言ってしまってもいい。
- 509 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:38:01.24 .net]
- >>501
なるほど、ML系かぁ。そういわれれば納得です。
- 510 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 22:41:41.95 .net]
- C#とかJavaとかはジェネリックが狂ってるな
- 511 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 05:15:33.48 .net]
- js_of_ocaml が面白そうだな
- 512 名前:デフォルトの名無しさん [2011/10/19(水) 21:52:08.21 .net]
- ocamlてmain関数的なエントリポイントって無いの?
Pythonみたいな泥臭い方法でもいいんだけど.
- 513 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 12:56:49.09 .net]
- 具体的に OCaml で何をしたいのか、Python のどこがダサいのか
書いた方が答をもらいやすいよ
- 514 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 14:05:46.81 .net]
- >>505
OCamlにエントリポイントはないです。__main__とかないです。 ocamlc -o a.out a.ml b.ml c.mlとしてコンパイルすると、 a.outの動きとしてはmodule A,B,Cの順番で評価されるイメージになります。
- 515 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 03:27:50.02 .net]
- 最近HaskellからOCamlに興味を持って少し触り始めたんですが,OCamlの対話環境にはghciの「:i 」みたいなものは無いんでしょうか?
- 516 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 06:11:24.22 .net]
- 「なぜ次に学ぶ言語は関数型であるべきか」
d.hatena.ne.jp/ymotongpoo/20111105/1320506449 原文: queue.acm.org/detail.cfm?id=2038036
- 517 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 22:31:50.25 .net]
- toplevel の pretty printer を普通のプログラム内で使う方法ってありますか。
- 518 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:42:07.36 .net]
- >>509
どしょっぱつの,Sometimes, が訳されていないとか,いろいろと 気になるところはあるけれど,大意は伝わった。うむうむ。
- 519 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 05:42:33.31 .net]
- >>510 #install_printer のやつ?
- 520 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 05:53:40.36 .net]
- >>510 言語は?
- 521 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 10:47:17.91 .net]
- scan.netsecurity.ne.jp/article/img/2011/11/13/27625/93.html
tokuhirom、ma.la?っていう人の話だけ聞きたい 色々なスレで見かけるけどWEB業界で有名らしいね 動画ありませんか?
- 522 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:53:05.05 .net]
- The little MLerの情報って調べたけど少ないね。大学の図書館
とかなら有りそうに思うけど、今は大学と関係ないから探せんわ。 SML中心で書いてるようだ。Ocamlへの改変の仕方ものってる というのはgoogle booksでわかった。 使って学習した人っておらんの?
- 523 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 09:07:06.79 .net]
- NACSIS Webcatで検索するか買えば?
面白いよ。
- 524 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 14:49:34.72 .net]
- NACSIS Webcatか
webcat.nii.ac.jp/cgi-bin/shsproc?id=BA3501073X 意外とおいてるところ少ないね。今学習してる本が片付いたら 購入検討するわ。
- 525 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:07:11.14 .net]
- www.d12k.org/tso/intro.html
- 526 名前:デフォルトの名無しさん mailto:age [2011/12/10(土) 10:15:38.86 .net]
- age
- 527 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:18:07.20 .net]
- MLってCACHEに使われてるんだっけ?
RDBでないDBに興味を持ったので調べ始めたんだけど、 ML、CACHEとも事例が中々見つからない...
- 528 名前:デフォルトの名無しさん [2012/01/02(月) 00:09:12.82 .net]
- OCaml のモジュールについて質問です.
たとえば A.B A.C A.D みたいにネストしたモジュールをそれぞれ分割されたファイル(a/b.ml, a/c.ml, a/d.ml など階層化されたディレクトリに分けられる?)に書くには OCaml ではどういう方法が一般的でしょうか?
- 529 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 07:56:03.89 .net]
- ocamlc -pack
- 530 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 00:44:48.75 .net]
- SML#
partake.in/events/f04706e0-0eac-4751-901f-41707bdfb1ef
- 531 名前:デフォルトの名無しさん [2012/04/22(日) 14:29:24.78 .net]
- MLの無名関数 (fn x => x + 1 みたいなの)って再帰的な定義をする記法はないのですか?
fn n => n * (fn n-1) みたいな感じで。
- 532 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 17:17:03.18 .net]
- >>524
どうしてもやりたいならY combinatorを定義して使うとか: let rec y f x = f (y f) x;; (y (fun f x -> match x with 0 -> 1 | n -> n * f (n-1))) 10;;
- 533 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 08:12:58.62 .net]
- >>524 そのため(名前を付けて循環定義にするため)に let rec があるので
let rec と組み合わせればいいと思うんだけど、let rec と組み合わせたくない 理由とかある?
- 534 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 20:37:41.35 .net]
- SML/NJでdatatype 'a tree = Empty | Node of 'a * 'a tree * 'a treeとかやっといて、適当な深い木を定義してやると
表示が"Node #"と出てきて省略されてしまうんだけど、略記せずに全部出力させる方法があれば教えて。
- 535 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 21:20:09.21 .net]
- 自分でプリンタ書けよ
- 536 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 00:54:20.88 .net]
- camlp4 使った奴でよくみる pa_* な名前の奴の pa って何の略なんだ?
- 537 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:59:34.92 .net]
- PArsing
つ mjambon.com/extend-ocaml-syntax.html
- 538 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 15:05:27.19 .net]
- >>530
おお、ありがとう!
- 539 名前:デフォルトの名無しさん [2012/05/08(火) 20:26:45.44 .net]
- >>527
以下2つに適当に大きな数字を書き込む。 Control.Print.printLength; Control.Print.printDepth; あと、 Control.Print.out も便利。何もしない関数に置き換えると、エコーバックを消せる。
- 540 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 13:35:08.25 .net]
- ttp://www.amazon.co.jp/Modern-Functional-Programming-Chris-Reade/dp/0201648644/ref=sr_1_2?s=english-books&ie=UTF8&qid=1339043582&sr=1-2
www
- 541 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 13:40:40.11 .net]
- どこからつっこめばいいの…w
- 542 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 17:40:09.00 .net]
- > 掲載画像とお届けする商品の表紙が異なる場合があります。ご了承ください。
とあるけど、どういうことだろう
- 543 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 21:01:28.02 .net]
- オリンピックをもう一回
- 544 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 15:25:00.19 .net]
- 300?
- 545 名前:デフォルトの名無しさん mailto:sage [2012/07/25(水) 19:10:23.62 .net]
- >>534
>出版社: Addison-Wesley (2017/11/20) 2017年・・・
- 546 名前:デフォルトの名無しさん [2012/07/25(水) 20:56:09.52 .net]
- OCamlで
int_of_float -0.7;; がエラーになるんですが、どうして? Error: This expression has type float -> int but an expression was expected of type int ちなみに、、 # int_of_float 0.7;; - : int = 0 # -0.7;; - : float = -0.7 -0.7はfloatじゃないの?何がダメなの?
- 547 名前:デフォルトの名無しさん mailto:sage [2012/07/25(水) 21:13:02.20 .net]
- 中置関数 (-) : int -> int -> int
ががっつり int_of_float を引数に取っているわけで。 int_of_float (-0.7) で使ってください。
- 548 名前:デフォルトの名無しさん mailto:sage [2012/07/25(水) 22:13:31.14 .net]
- >>540
そういうことでしたか! ありがとうございます
- 549 名前:デフォルトの名無しさん mailto:sage [2012/07/28(土) 13:56:10.63 .net]
- >>541
~-.0.7 と書いても良いね
- 550 名前:デフォルトの名無しさん mailto:sage [2012/07/29(日) 11:24:50.70 .net]
- いつの間にか OCaml4.00.0
- 551 名前:デフォルトの名無しさん mailto:sage [2012/07/29(日) 12:34:47.25 .net]
- 岡村4.00.0
- 552 名前:デフォルトの名無しさん mailto:sage [2012/07/30(月) 17:15:20.50 .net]
- OCaml
コンパイルして、nativeなコード吐いて、不思議な実行のさせかたしてるのね
- 553 名前:デフォルトの名無しさん mailto:sage [2012/07/30(月) 22:50:31.73 .net]
- どのへんが不思議なんだ?
- 554 名前:デフォルトの名無しさん [2012/08/12(日) 14:06:23.13 .net]
- わからない?
- 555 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 23:04:07.50 .net]
- わからない。教えて下さい。お願いします。
- 556 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:04:10.53 .net]
- #!/usr/bin/ocamlrun
- 557 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 01:29:14.36 .net]
- nativeの意味を取り違えてない?
- 558 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 03:03:42.64 .net]
- スクリプトじゃないのはdumpすればわかるでしょ
- 559 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 11:53:42.11 .net]
- www002.upp.so-net.ne.jp/mamewo/ml.html#compile
- 560 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 23:04:20.96 .net]
- ねんがんのLittle MLerをてにいれたぞ
OCamlの場合の読み替え方法も載ってるけど、素直にSMLでやった方が良いのかな てか読んでる人はいるんだろうか・・・
- 561 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 03:59:59.39 .net]
- 以下の関
- 562 名前:狽ナprint_int x という文を入れると構文エラーになってしまうのですが、何がいけないのでしょうか?
let hoge x = print_int x ← これ if x=0 then 0 else x + 10 let test1 = hoge 0 = 0 let test2 = hoge 10 = 20 # #use "printtest.ml";; File "printtest.ml", line 3, characters 4-6: Error: Syntax error ← 原因は? [] - [ここ壊れてます]
- 563 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 08:57:34.05 .net]
- print_int x;
- 564 名前:デフォルトの名無しさん mailto:sage [2012/09/02(日) 10:39:53.93 .net]
- >>555
Thx!出来ました セミコロンを使うのはインタプリタだけなのかと思っていました 調べてみたら、配列の区切りでも使われるんですね
|

|