[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/10 00:21 / Filesize : 224 KB / Number-of Response : 956
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型言語ML(SML, OCaml, etc.), Part 5



1 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:49:54 ]
関数型言語MLについて語るスレッドです。

MLは、確固とした理論的背景を持つ言語でありながら、
現実的なソフトの開発にも使用できる実用性を備えた言語です。
また、プログラミングの初心者が最初に学習する言語としても優れています。

総本山
Standard ML www.smlnj.org/
Objective Caml caml.inria.fr/ocaml/

前スレ
関数型言語ML(SML, OCaml, etc.), Part 4
pc11.2ch.net/test/read.cgi/tech/1133003340/

504 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 20:55:26 ]
gdbは?

505 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 20:58:08 ]
そういえばこんなのがあったの忘れてたわ。

C-REPL
neugierig.org/software/c-repl/

506 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 20:58:59 ]
Haskell製か

507 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 22:53:12 ]
>>504

>Cのデバッガのように必須だという認識の人は少ないと思われ。

だから普通はそういう事なんだろうなww
まあgdbではlispとかcamlとかみたいに書いて即テストって訳にはいかないがgdbは便利だよな。

508 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 03:43:57 ]
>>454亀だがちょうど最近覚えたので確認のために
fun swap (date,i,j)=
 let
  val a = Array.sub(date,i)
  val b = Array.sub(date,j)
 in
  Array.update(date,i,b);
  Array.update(date,j,a)
 end
localでArrayをopenしておいたほうが綺麗かも


509 名前:デフォルトの名無しさん [2008/07/22(火) 18:35:13 ]
すんまそん、Ocamlで日本語文字は扱えませんか?
例えば正規表現なんかでも使いたいんですが。


510 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 20:41:48 ]
OCamlのstring型は任意のバイナリが入るので、標準入力とかファイル経由で扱うなら
日本語でもなんでもあり。
ただし、OCamlのソースコードに日本語を埋め込みたいなら、EUC_JP以外使えないと思う。
EUC_JPなら、普通にperl互換正規表現ライブラリのラッパーが使える。
pcre-ocaml.sourceforge.net/
データをUNICODEとして扱うなら、Camomileで日本語「文字」を扱えますね。
camomile.sourceforge.net/index.html.ja.jis

あと、正規表現で日本語を扱う問題はOCamlに限らずどれでも一緒なので、
www.din.or.jp/~ohzaki/perl.htm
あたりをどうぞ。

511 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:03:32 ]
最後のURLは、perlのやり方としては古くて、
(今や\p{Hiragana}という風に"script"を文字クラスとして指定できるので)
「どれも一緒」というよりも、Ocamlだとこのやり方が有効って事になると思います。

512 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:16:11 ]
UTF8 で書いて pcre-ocaml の `UTF8 オプションを使え。あと camomlile。以上。




513 名前:デフォルトの名無しさん [2008/07/23(水) 22:25:46 ]
MLtonのFFIを使って、Cのmain関数からSMLを呼びたいのだが、これは
不可能?



514 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:52:08 ]
www.cs.caltech.edu/courses/cs134/cs134b/book.pdf
こんなのをみっけたけど、ゆうめいなん?

515 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 08:08:15 ]
OCamlの入門記事
ttp://indori.blog32.fc2.com/blog-entry-223.html

516 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:19:54 ]
何よりもピヨが気になる

517 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 08:38:28 ]
>>515
入門記事というより、入門している記事


518 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 08:51:30 ]
>> 514
数ヶ月前に見たので、うろ覚えだけど、optional arguments や polymorphic variants が
かなり早期に出てくる。そういう点では、こういう新しい機能をおまけとして解説してきた、
「OCaml を使ってプログラミングを学ぶ」本とは毛色が違い、より OCaml 自体を学ぶ事に
重点が置かれている。class についても最後にかなりページ数が割かれている。


519 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:07:36 ]
>> 518 続き
そういうわけで、ひととおり関数型言語のコンセプトについて理解した人には
OCaml リファレンスとしていいんじゃないかと思う。


520 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:11:59 ]
>>519
解説ありがとう。なるほど他言語をやっていて、始めようとする人向きだということが
分かりました。


521 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 00:31:48 ]
>>515
Winでパフォーマンス落ちるのはバイトコードの話でしょ?
ネイティブなら問題ない

522 名前:デフォルトの名無しさん [2008/08/24(日) 14:59:04 ]
smlからsml#に移行しようとしてるんだけど,
型エラー(?)が出て実行できないのがある.
誰か助けて...

次のレスにエラーが出るプログラムを貼ります.



523 名前:522 mailto:sage [2008/08/24(日) 15:00:46 ]
リストを使った集合演算のプログラムです.
(他にもエラーが出るプログラムはあるのだけど,
とりあえずある中で一番小さいもの)

まずはシグネチャ

signature SET =
sig

eqtype 'a Set

exception EmptySet

val emptyset : 'a Set
val elem : 'a Set -> 'a * 'a Set
val member : ''a -> ''a Set -> bool
val add : ''a -> ''a Set -> ''a Set
val map : ('a -> 'b) -> 'a Set -> 'b Set
val allelem : ''a Set -> (''a * ''a Set) Set
val fromList : 'a list -> 'a Set
val toList : 'a Set -> 'a list

end;

524 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:01:24 ]
■■学校を作ろう!■■
VIP発でサイトを作ろうと思うんだ。(詳しくはWikiを見てくれ)
パートスレになるんでパー速(GEP)に移動している。
今スタッフを募集しているから、来てくれないか?

■Wiki
www36.atwiki.jp/vipvipschool/
■募集スタッフ
プログラム担当(特にErlang、Perl)
デザイナー(サイト上のアイコン、ロゴなど)
WEBデザイナー(サイトデザイン案に沿って、htmlやCSSを書ける)
他にも宣伝担当なども募集している。
■スレ
ex14.vip2ch.com/test/read.cgi/news4gep/1219068297/

525 名前:522 mailto:sage [2008/08/24(日) 15:02:24 ]
次はストラクチャ(の一部)

structure Set :> SET =
struct

type 'a Set = 'a list;

exception EmptySet;

val emptyset = [];

(* Compute a pair of the element of input lists and rest set *)
fun elem [] = raise EmptySet
| elem (x::xs) = (x,xs);

(* Check whether x is an element of a set *)
fun member _ [] = false
| member x (y::ys) = (x = y orelse member x ys);

526 名前:522 mailto:sage [2008/08/24(日) 15:05:15 ]
(続き)

(* Add an element to a set *)
fun add a A =
if member a A then A
else a::A;

val map = List.map;

(* Compute {(a,A \ {a}) | a \in A} *)
(* where A is an input set *)
fun allelem A =
let
val (b,B) = elem A
in
add (b,B) (map (fn (c,C) => (c, add b C)) (allelem B))
end
handle EmptySet => emptyset;

fun fromList l = l;
fun toList l = l;

end;

527 名前:522 mailto:sage [2008/08/24(日) 15:09:53 ]
で,以下を実行するとエラーが出ます.
(SMLでは大丈夫だった)

Set.toList (Set.allelem (Set.fromList [1,2,3,4,5]));

エラーは以下のとおりです.
Diagnoses:
stdIn:12.1-12.49 Diagnosis(typecheckExp 12):
expression type and annotation don't agree
expression type: (int * int Set.Set) Set.Set -> (int * int Set.Set) list
annotation: (int * int Set.Set) Set.Set -> (int * int Set.Set) list
stdIn:12.1-12.49 Diagnosis(typecheckExp 16):
opetator and operand don't agree
operator type: (int * int Set.Set) Set.Set -> (int * int Set.Set) list
operand types: (int * int Set.Set) Set.Set
stdIn:12.1-12.51 Diagnosis(typecheckExp 12):
expression type and annotation don't agree
expression type: (int * int Set.Set -> expression) ->
(int * int Set.Set) list -> expression
annotation: (int * int Set.Set -> expression) ->
(int * int Set.Set) list -> expression
stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
expression type and annotation don't agree
expression type: int * int Set.Set
annotation: int * int Set.Set
stdIn:12.1-12.51 Diagnosis(typecheckExp 12):
expression type and annotation don't agree
expression type: int Set.Set -> expression
annotation: int Set.Set -> expression

528 名前:522 mailto:sage [2008/08/24(日) 15:11:46 ]
(エラー続き)

stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
expression type and annotation don't agree
expression type: int * int Set.Set
annotation: int * int Set.Set
stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
opetator and operand don't agree
operator type: int Set.Set -> expression
operand types: int Set.Set
stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
opetator and operand don't agree
operator type: (int * int Set.Set -> expression) ->
(int * int Set.Set) list -> expression
operand types: int * int Set.Set -> expression

529 名前:522 mailto:sage [2008/08/24(日) 15:13:41 ]
(さらに続き)

stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
opetator and operand don't agree
operator type: (int * int Set.Set) list -> expression
operand types: (int * int Set.Set) list
stdIn:12.1-12.51 Diagnosis(typecheckExp 12):
expression type and annotation don't agree
expression type: (int * int Set.Set) list -> expression
annotation: (int * int Set.Set) list -> expression
stdIn:12.1-12.51 Diagnosis(typecheckExp 16):
opetator and operand don't agree
operator type: (int * int Set.Set) list -> expression
operand types: (int * int Set.Set) list
BUG :invalid type

530 名前:デフォルトの名無しさん [2008/08/25(月) 02:01:56 ]
数学における記法の話です
大学入試の問題文の冒頭で
「f(x)=x^3+3x^2とする」とあるのですが
この=はC言語と同様に、右辺の関数にfという名前を付けるという
意味での=つまり;=のことでしょうか?

531 名前:デフォルトの名無しさん [2008/08/25(月) 02:06:58 ]
C言語では関数に名前をつけるときに=を使わないのでは?

532 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 02:59:26 ]
>>530 関数型言語MLについて語るスレッドです。



533 名前:デフォルトの名無しさん [2008/08/25(月) 04:08:36 ]
>>532
すみません、これだけでいいので分かる方いたら教えてください

534 名前: mailto:sage [2008/08/25(月) 05:21:23 ]
WindowsでOCamlを使うには、「MinGW」もしくは「Microsoft Visual C++ and Microsoft Assembler」が必要になります
って読んだんだけどOcamlのコンパイラってCへのトランスレーターなの?

535 名前:デフォルトの名無しさん [2008/08/25(月) 07:18:20 ]
アセンブラでsho

536 名前: mailto:sage [2008/08/25(月) 16:19:07 ]
アセンブラですか。どうもありがとう。

537 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 17:17:37 ]
>>530
夏休みも終わりだねえ


538 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:17:08 ]
>>522
閑古鳥の鳴いてるメーリングリストを活性化するために話題を投げてくれ


539 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:17:38 ]
>>522
SML#のバグじゃないかな・・・?
次回アップデートに期待としか。

540 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 08:46:12 ]
eigenclass.org/hiki/fp-ocaml-koans


541 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 08:51:16 ]
warota

542 名前:061123251194.cidr.odn.ne.jp mailto:sage [2008/09/19(金) 18:58:37 ]
よいコンパイラの教科書(当然関数型)があれば紹介してください。和英こだわりません。




543 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:00:51 ]
まずはnavi2chのスレをみたほうがいいかもしれない

544 名前:061123251194.cidr.odn.ne.jp mailto:sage [2008/09/19(金) 19:05:21 ]
そのようですね。


545 名前:542 [2008/09/19(金) 19:29:56 ]
おさわがせしました。昔の navi2ch がパスに残っていた、、、ダサいな




546 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:31:39 ]
ところで、
・処理系を関数型言語で書きたい
・関数型言語の処理系を書きたい
どっち?

547 名前:542 [2008/09/19(金) 19:38:53 ]
コンパイラを書きたい、ですね。(多分書かないけど)


548 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:44:24 ]
ワラ


549 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:24:30 ]
や、だから
・コンパイラを関数型言語で書きたい
・関数型言語のコンパイラを書きたい
のどっちなのかということですよ

550 名前:デフォルトの名無しさん [2008/09/19(金) 21:16:48 ]
MLでコンパイラの教科書って有名なの1冊しかないんじゃないの?
いいかどうかは知らない。

551 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:25:48 ]
洋書で青い表紙で虎のやつのこと?モダンなんちゃらだっけ?
EOPLはschemeでML処理系を作るやつだったよね

552 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:27:18 ]
「Modern Compiler Implementation In ML」かな…
持ってるけど、読んでない…



553 名前:デフォルトの名無しさん [2008/09/19(金) 22:41:49 ]
まだモダンなのかなぁ

554 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 23:00:15 ]
近代はずっと近代。もっと新しいのは現代。

555 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:27:06 ]
計算機の本で「コンテンポラリー」を名乗ったものって記憶にないなぁw
なんかあったっけ?

556 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:54:33 ]
まだポスト・モダンが出現してないから。

557 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 12:10:11 ]
学会のサブタイトルなら見たことある。

558 名前:デフォルトの名無しさん [2008/09/20(土) 17:03:51 ]
GODIがインストールできない。bootstrap_stage2で失敗する。

~/Desktop/godi-rocketboost-20080630$ sudo ./bootstrap --prefix /usr/local/godi
...
Bootstrap was successful!
...
Selected GODI section: 3.10
...
~/Desktop/godi-rocketboost-20080630$ PATH=/usr/local/godi/bin:/usr/local/godi/sbin:$PATH
~/Desktop/godi-rocketboost-20080630$ export PATH
~/Desktop/godi-rocketboost-20080630$ sudo ./bootstrap_stage2
.: 1: godi_confdir: not found
Error: Command fails with code 2: /bin/sh
Failure!
~/Desktop/godi-rocketboost-20080630$

なんでだろう。
ttp://d.hatena.ne.jp/keita_yamaguchi/20080313/1205419732
の言う通り3.10に対応してないのだろうか?
それとも根本的なところを勘違いしてる?
OCaml初心者ですが、GODIが必要です。

559 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 09:30:04 ]
> OCaml初心者ですが、GODIが必要です。
この前提が、なんか、もう。


560 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 19:06:57 ]
NumとかBig_intのプリンタが欲しいとか?

561 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 10:13:03 ]
たかがそんなもののために GODI が必須で、
GODI がインストールできないから使えない、というのは間違ってますね。

逆に、GODI 依存ユーザからお前のライブラリ GODI にポートしろとか
当然のように言われるのも迷惑です。


562 名前:デフォルトの名無しさん [2008/09/29(月) 21:15:32 ]
OCamlってライブラリ関連でコミュニティの足並みそろってないせいで言語の良さがかすんじゃってる感ある。



563 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 11:52:19 ]
足並み揃えて大きな標準ライブラリ作ればって話は昔からあるし、今もOCamlForgeとかでやってるけど、なかなか成果が出ない。
なんでだろう?

564 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:34:01 ]
これからはHaskellだから

565 名前:デフォルトの名無しさん [2008/10/01(水) 16:14:10 ]
windowsXPを使っていて、ML言語を使えるようにしたいので、インストール方法をどなたか教えていただきたいのですが・・・


566 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:17:28 ]
じゃ、f# がいいんじゃない?
インストーラーがあるよ

567 名前:デフォルトの名無しさん [2008/10/01(水) 19:53:20 ]
OCamlにだってWindowsのインストーラくらいはさすがにある。

568 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:00:11 ]
>>567
コンパイルできないやつか
コンパイルしても動かないやつしかない

569 名前:デフォルトの名無しさん [2008/10/02(木) 08:45:56 ]
>>565
cygwin入れれば標準でocaml入ってるよ。

570 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:34:32 ]
cygwin入れるならデュアルブートか仮想化するなぁ…

571 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:07:14 ]
SML#はプロジェクトのページにインストールから簡単なプログラミングまでチュートリアルがあったはず

572 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:52:15 ]
>>565
こーゆー時のためにocaml.jp/です。
OCamlのインストール方法からチュートリアルまで揃ってますよ。



573 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:53:52 ]
相変わらずマルチバイト扱いにくいね


574 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:01:09 ]
使い方がさっぱりわからないunicodeライブラリならあるよ

575 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:03:39 ]
>>574
それ扱いやすいって言わないよ〜 orz

普段使いで文字列扱うせいでこまるんだよな、言語自体好きなのに。


576 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 09:44:20 ]
日本語でおk

577 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:30:36 ]
ocamlのコンソールの使いにくさは異常。
pythonならC-b, C-fでカーソルの移動ができたり、
emacsの標準的なキーが使えるから気軽にコンソールでためせる。



578 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:58:55 ]
>>577
ledit使え、と思ったらなんか終わってるらしい。
どうしたものか...

579 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:01:10 ]
rlwrap

580 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:14:31 ]
inf-caml使えばいい

581 名前:577 mailto:sage [2008/10/06(月) 13:12:12 ]
みなさんありがとうございます。
ためして見たところrlwrapを使うことにしました。

すごいです!!ありがとう!



582 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:34:32 ]
>>578
>ledit使え、と思ったらなんか終わってるらしい。
え、終わってるって、どういうこと?
俺、ledit 使ってるけど



583 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:19:07 ]
>>582
ledit終了 でぐぐるとトップに出てくるブログに書かれてる情報絡みのことじゃないかと

584 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 11:03:05 ]
3.11 のブランチ release311 が ocaml-cvs に出来ました。おそらくもうすぐリリースですね。

3.11 の目玉

* native判のモジュールの dynamic link
* private abbreviation type
* Printexc.print_backtrace 等、デバッグに役立ちそうな backtrace 系関数数種
* ocamlnat: native の toplevel (デフォルトでは作らないそうな)


585 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 12:12:17 ]
>native判のモジュールの dynamic link

これって既に10で出来るようになったんじゃなかったけ?
と思ったら、今は dynlink.cmxa をリンクしないといけないのか
これは便利だな

586 名前:デフォルトの名無しさん [2008/10/10(金) 12:01:15 ]
法政大学の児玉先生の所におかれている
yk.i.hosei.ac.jp/library/hosei/seminar/caml/miniml/minicaml.sml

をいまどきのSMLNJで動かすにはどう変更したらよいでしょうか.
ord(#"0")はすぐわかりましたが,lookaheadなどがcharを期待してして
いるのが仕様変更になったようで,elem をどうやってやればcharで
使えるのかが判然としません.


587 名前:デフォルトの名無しさん [2008/10/15(水) 09:18:45 ]
OCamlの次世代デファクトスタンダードライブラリを目指すBatteriesがα1をリリースしたらしい。

dutherenverseauborddelatable.wordpress.com/2008/10/11/ocaml-batteries-included-version-alpha/

一応前から内容は見ていて、OCamlのベースライブラリをモダンな階層構造に再編集しているのはすばらしいと思う。
ただ、ちょっと既存の外部ライブラリに頼りすぎていて、枝葉になるほど寄せ集め感が否めないのが気になる。
将来これに一本化されていくのかなー?私もこれに乗るのかどうか、今悩み中。


588 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 15:52:01 ]
過疎ってるからって hatena からそのままコピペするのはよそうよ


589 名前:osiire mailto:sage [2008/10/15(水) 19:04:27 ]
誰ですか、私のエントリーをコピペしたのは。
別にいいですけど、一人称くらい変更してくれてもいいのに。

590 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 21:49:05 ]
3.11の目玉の一つの、private abbreviation type って何でしょか?
private typesでもなくprivate row typesでもない、なにか?まぎらわしー。

591 名前:デフォルトの名無しさん [2008/10/26(日) 20:54:39 ]
過疎ってるから
俺がocaml勉強日記を書いてあげようか?

わからないことがあったら答えて下さいね!

592 名前:デフォルトの名無しさん [2008/10/26(日) 23:04:30 ]
断る



593 名前:デフォルトの名無しさん [2008/10/26(日) 23:12:42 ]
面白くなりそうだったらいいよ。

594 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:21:06 ]
>>591
おう、かいてたらいいよ。

595 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 10:53:31 ]
module M : sig
type nat = private int
val nat_of_int : int -> nat
val int_of_nat : nat -> int
end = struct
type nat = int
let nat_of_int n =
(assert (n >= 0));
n
let int_of_nat n = n
end


596 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:21:06 ]
>>595
レスどうも。
この例は、signatureでtype natとして隠蔽した場合と何が違うのでしょう?
試してもprinterが<abstr>になるかどうかくらいしか違い分かりませんでした。
どういう利用法があります?

597 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:53:58 ]
ぐぐったらあったorz ↓
ttp://d.hatena.ne.jp/camlspotter/20081027/1225076108
subtypingとは気づかなかった。

598 名前:デフォルトの名無しさん [2008/11/01(土) 12:46:43 ]
nullとnilの違いを教えてください。

599 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 13:20:42 ]
null:物の表面に液や塗料をなすりつけること。
nil:食物を、水または調味料を加えた汁に入れて加熱し、食べられる状態にすること。

600 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 14:51:15 ]
>>599
ttp://pc11.2ch.net/test/read.cgi/tech/1203474071/l50

601 名前:デフォルトの名無しさん [2008/11/02(日) 02:49:24 ]
SMLにおいて、nullとnilの違いを教えてください。


602 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:53:01 ]
nilは空のリスト。
nullはListストラクチャーの、リストを受け取りnilかどうかをboolで返す関数。



603 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 03:21:30 ]
nullp

604 名前:デフォルトの名無しさん [2008/11/02(日) 03:35:53 ]
>>599
ウケ狙いなら、残念。もう一ひねりホシイ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<224KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef