関数型言語ML(SML, OC ..
577:デフォルトの名無しさん
08/10/06 11:30:36
ocamlのコンソールの使いにくさは異常。
pythonならC-b, C-fでカーソルの移動ができたり、
emacsの標準的なキーが使えるから気軽にコンソールでためせる。
578:デフォルトの名無しさん
08/10/06 11:58:55
>>577
ledit使え、と思ったらなんか終わってるらしい。
どうしたものか...
579:デフォルトの名無しさん
08/10/06 12:01:10
rlwrap
580:デフォルトの名無しさん
08/10/06 12:14:31
inf-caml使えばいい
581:577
08/10/06 13:12:12
みなさんありがとうございます。
ためして見たところrlwrapを使うことにしました。
すごいです!!ありがとう!
582:デフォルトの名無しさん
08/10/06 21:34:32
>>578
>ledit使え、と思ったらなんか終わってるらしい。
え、終わってるって、どういうこと?
俺、ledit 使ってるけど
583:デフォルトの名無しさん
08/10/07 12:19:07
>>582
ledit終了 でぐぐるとトップに出てくるブログに書かれてる情報絡みのことじゃないかと
584:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/09 12:12:17
>native判のモジュールの dynamic link
これって既に10で出来るようになったんじゃなかったけ?
と思ったら、今は dynlink.cmxa をリンクしないといけないのか
これは便利だな
586:デフォルトの名無しさん
08/10/10 12:01:15
法政大学の児玉先生の所におかれている
URLリンク(yk.i.hosei.ac.jp)
をいまどきのSMLNJで動かすにはどう変更したらよいでしょうか.
ord(#"0")はすぐわかりましたが,lookaheadなどがcharを期待してして
いるのが仕様変更になったようで,elem をどうやってやればcharで
使えるのかが判然としません.
587:デフォルトの名無しさん
08/10/15 09:18:45
OCamlの次世代デファクトスタンダードライブラリを目指すBatteriesがα1をリリースしたらしい。
URLリンク(dutherenverseauborddelatable.wordpress.com)
一応前から内容は見ていて、OCamlのベースライブラリをモダンな階層構造に再編集しているのはすばらしいと思う。
ただ、ちょっと既存の外部ライブラリに頼りすぎていて、枝葉になるほど寄せ集め感が否めないのが気になる。
将来これに一本化されていくのかなー?私もこれに乗るのかどうか、今悩み中。
588:デフォルトの名無しさん
08/10/15 15:52:01
過疎ってるからって hatena からそのままコピペするのはよそうよ
589:osiire
08/10/15 19:04:27
誰ですか、私のエントリーをコピペしたのは。
別にいいですけど、一人称くらい変更してくれてもいいのに。
590:デフォルトの名無しさん
08/10/24 21:49:05
3.11の目玉の一つの、private abbreviation type って何でしょか?
private typesでもなくprivate row typesでもない、なにか?まぎらわしー。
591:デフォルトの名無しさん
08/10/26 20:54:39
過疎ってるから
俺がocaml勉強日記を書いてあげようか?
わからないことがあったら答えて下さいね!
592:デフォルトの名無しさん
08/10/26 23:04:30
断る
593:デフォルトの名無しさん
08/10/26 23:12:42
面白くなりそうだったらいいよ。
594:デフォルトの名無しさん
08/10/26 23:21:06
>>591
おう、かいてたらいいよ。
595:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/27 15:21:06
>>595
レスどうも。
この例は、signatureでtype natとして隠蔽した場合と何が違うのでしょう?
試してもprinterが<abstr>になるかどうかくらいしか違い分かりませんでした。
どういう利用法があります?
597:デフォルトの名無しさん
08/10/27 15:53:58
ぐぐったらあったorz ↓
URLリンク(d.hatena.ne.jp)
subtypingとは気づかなかった。
598:デフォルトの名無しさん
08/11/01 12:46:43
nullとnilの違いを教えてください。
599:デフォルトの名無しさん
08/11/01 13:20:42
null:物の表面に液や塗料をなすりつけること。
nil:食物を、水または調味料を加えた汁に入れて加熱し、食べられる状態にすること。
600:デフォルトの名無しさん
08/11/01 14:51:15
>>599
スレリンク(tech板)l50
601:デフォルトの名無しさん
08/11/02 02:49:24
SMLにおいて、nullとnilの違いを教えてください。
602:デフォルトの名無しさん
08/11/02 02:53:01
nilは空のリスト。
nullはListストラクチャーの、リストを受け取りnilかどうかをboolで返す関数。
603:デフォルトの名無しさん
08/11/02 03:21:30
nullp
604:デフォルトの名無しさん
08/11/02 03:35:53
>>599
ウケ狙いなら、残念。もう一ひねりホシイ。
605:デフォルトの名無しさん
08/11/02 07:43:26
ウケ狙いならって・・・
他に何があるというのか小1時間(ry
606:デフォルトの名無しさん
08/11/04 06:30:51
独学でSMLの本を使いながら関数言語を学んでいるのですが、上手くできない問題があり困っています。
replicate(4);
と打つと、
val it = [1,2,2,3,3,3,4,4,4,4] : int list
といった感じに1を一つ,2を二つ、3を三つ、4を四つといったリストを
出力されるSMLのリカーシブメソッドを書きたいのですが、上手く行きません。分かる方教えていただけると助かります。
607:デフォルトの名無しさん
08/11/04 07:09:08
うまくいかなかったやつを載せてみてよ。
608:デフォルトの名無しさん
08/11/04 08:14:40
>>606
リカーシブメソッドっていうのが何を差してるのか分からないけど、
入力: 自然数n
出力: 要素が全てnで長さnのリスト
とするサブ関数使えばいいんじゃない?
609:デフォルトの名無しさん
08/11/04 08:21:09
n
[1,2,3,...,n]
[1,22,333,...,n,n,n,n,]
の二行目から三行目で>>608使えばいいな。
610:デフォルトの名無しさん
08/11/04 09:16:29
recursive
再帰だな。
611:608
08/11/04 09:29:59
とりあえず作ってみた。
>>609のやりかたとは違います。
↓にあっぷしてみたので、ご参考までに。
URLリンク(www2.uploda.org)
(パスは sml です)
入力は自然数(0以上)を仮定しています。
612:デフォルトの名無しさん
08/11/04 12:47:57
あー、答えちゃったの?どう読んでも宿題なんだから、自分で考えさせてあげなきゃ。
613:608
08/11/04 18:17:23
>>612
やっぱそうだよねぇ。
「独学で」なんて書いてるから、
にっちもさっちも行かなくなったと思っちゃったんだよね。
やっぱ、寝ないとだめだな。
614:デフォルトの名無しさん
08/11/04 23:34:42
>>612>>613
良く寝て頭を休めろ。
615:デフォルトの名無しさん
08/11/05 00:11:55
SMLならメソッドじゃなくてファンクションだろ、とどうでもいい突っ込み。
再帰関数はn-1番目からn番目を導出する定義をそのまま書くのがコツ。
もう>>606は見てないだろうけど。
616:デフォルトの名無しさん
08/11/05 00:43:05
宿題でも独学でもどっちでもいいのでは。
617:デフォルトの名無しさん
08/11/05 00:55:48
URLリンク(xy.yu.to)
始終荒れまくりの海外サーバ絵チャだ
一人の神プログラマーが強すぎてマクロ荒しが全く太刀打ちできてない。
荒しプログラマーは全員退散!!
誰か倒してくれwwwwww
618:デフォルトの名無しさん
08/11/05 01:15:09
>>611
わざわざお答え頂ありがとうございます。
一応こちらもパターンマッチングでない、if - elseの方法で出来ました。ネストしたループのfunctionの前にletが抜けていただけでした。
参考になりました。
619:デフォルトの名無しさん
08/11/05 04:09:40
>>618
こういう課題は論理型の方がすっきりした定義になるね。
620:デフォルトの名無しさん
08/11/09 12:02:17
すんません教えてください。
(int -> int -> int) -> int
という関数の定義例が分かりません。
(int -> int) -> int -> int なら
たとえば
let func = fun f x -> (f 2) * x;;
でいいことが分かるのですが、
(int -> int -> int) -> int
だとわからなくなります。
『二つのintを引数とし、intを返す関数』を一つの引数としてとり
intを返す関数というふうに理解してます。
コードはどのように考えればよいんでしょうか?
621:デフォルトの名無しさん
08/11/09 12:48:12
なんでもいいけど
let func f = (f 1 2) + 3;;
622:デフォルトの名無しさん
08/11/09 14:05:34
>>621
ありがとうございます。
理解しました。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5313日前に更新/149 KB
担当:undef