関数型言語MLについて語るスレッドです。
MLは、確固とした理論的背景を持つ言語でありながら、
現実的なソフトの開発にも使用できる実用性を備えた言語です。
また、プログラミングの初心者が最初に学習する言語としても優れています。
総本山
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/
探検
関数型言語ML (SML, OCaml, etc.), Part 6
■ このスレッドは過去ログ倉庫に格納されています
2009/06/15(月) 07:15:21
758デフォルトの名無しさん
2013/10/18(金) 12:52:31.16 Obj.magic 'a' + 1 ;;
すげー こんなのもできるんだwwww
関数型言語界のgotoやで
すげー こんなのもできるんだwwww
関数型言語界のgotoやで
759デフォルトの名無しさん
2013/10/18(金) 14:08:58.82 奇跡も魔法もあるんだよ。
760デフォルトの名無しさん
2013/10/18(金) 18:35:29.49 ただしよくわからんで使うと死ぬ
761デフォルトの名無しさん
2013/10/18(金) 18:46:15.03 OCamlって最強の言語じゃね?
なんでみんなやらないんだろ
なんでみんなやらないんだろ
762デフォルトの名無しさん
2013/10/18(金) 18:49:32.53 変なライセンスだから
763デフォルトの名無しさん
2013/10/18(金) 18:53:24.02 intが1ビット少ないとか、モジュールの仕様上スマートリンクができないとか
ファーストクラスモジュールでOCamlのOたるオブジェクトがゴミになりましたとか
そのファーストクラスモジュールは後付けで構文がカオスですとか、あと+.(笑)とかGC遅いとか
ケチを付けようと思ったらいくらでも付けられるからなあ
ファーストクラスモジュールでOCamlのOたるオブジェクトがゴミになりましたとか
そのファーストクラスモジュールは後付けで構文がカオスですとか、あと+.(笑)とかGC遅いとか
ケチを付けようと思ったらいくらでも付けられるからなあ
764デフォルトの名無しさん
2013/10/18(金) 19:13:13.78 Windows版の更新サボってるのが一番の原因だな
765デフォルトの名無しさん
2013/10/18(金) 19:31:42.10 みんなって誰だよ
766デフォルトの名無しさん
2013/10/18(金) 19:33:25.20 研究室ではよく使ってる
767デフォルトの名無しさん
2013/10/18(金) 20:02:22.74 >>765
健常者の集合
健常者の集合
768デフォルトの名無しさん
2013/10/18(金) 22:46:49.64 言語の素性はともかくマンパワーは全然足りてないしな
769デフォルトの名無しさん
2013/10/18(金) 23:43:15.36 スマートリンクってなんぞ?
770デフォルトの名無しさん
2013/10/18(金) 23:50:11.98 sageたら教えてやる
771sage
2013/10/18(金) 23:56:08.97 教えてください
772sega
2013/10/19(土) 19:03:49.62 俺にも教えて
773デフォルトの名無しさん
2013/10/19(土) 22:25:27.91 じゃあおれも
774デフォルトの名無しさん
2013/10/28(月) 11:48:04.04 汎関数と高階関数って同じ意味ですか?
775デフォルトの名無しさん
2013/10/28(月) 13:22:54.90 ちがいます
776デフォルトの名無しさん
2013/10/28(月) 13:38:38.58 おなじです
777デフォルトの名無しさん
2013/10/28(月) 13:43:33.45 どっちだよ・・・
778デフォルトの名無しさん
2013/10/28(月) 13:58:52.58 >>774
関数を計算の対象とすること、いいかえると、関数を引数として受け付けたり
関数を返す関数のことを「高階の関数」または「高階関数」という
さらに、高階関数の中で計算の対象が関数だけなものを「汎関数」という
つまり高階関数は広い概念で、汎関数は狭い概念
たとえば関数 map や filter は高階関数であるけれど、リストも計算対象だから汎関数ではない
それに対して、合成関数 o は高階関数であるし汎関数でもある
関数を計算の対象とすること、いいかえると、関数を引数として受け付けたり
関数を返す関数のことを「高階の関数」または「高階関数」という
さらに、高階関数の中で計算の対象が関数だけなものを「汎関数」という
つまり高階関数は広い概念で、汎関数は狭い概念
たとえば関数 map や filter は高階関数であるけれど、リストも計算対象だから汎関数ではない
それに対して、合成関数 o は高階関数であるし汎関数でもある
779デフォルトの名無しさん
2013/10/28(月) 14:26:11.39 let foo f g x = g (f x) ;;
val foo : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c = <fun>
って合成関数があったとして
'aの引数は計算対象外になるの?
val foo : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c = <fun>
って合成関数があったとして
'aの引数は計算対象外になるの?
780デフォルトの名無しさん
2013/10/28(月) 15:17:35.72781デフォルトの名無しさん
2013/10/28(月) 15:25:02.71 あと汎関数は量を返す物をいうはず。
だから合成関数は汎関数でなく、高階関数。
だから合成関数は汎関数でなく、高階関数。
782デフォルトの名無しさん
2013/10/28(月) 15:27:39.31 間違えた
合成関数を"返す" 関数は汎関数でなく、高階関数。
合成関数を"返す" 関数は汎関数でなく、高階関数。
783デフォルトの名無しさん
2013/10/28(月) 15:32:51.19 >>779
まず 'a は型変数だから、「'a の引数は...」という用法は日本語として不適切
で、もし質問の意図が「関数 foo の定義における第三引数 x は、関数 foo の計算対象外か?」
であるならば、答えは Yes
引数 x は関数 f の計算対象であるけれど、汎関数 foo の計算対象ではない
汎関数を定義する場合、>>779 も決して間違いではないが、以下のように書いたほうが、
「x は(fooの引数ではなく)無名関数の引数である」という意図が理解しやすいだろう(言語はSML)
- fun foo f g = fn x => g (f x);
> val ('a, 'b, 'c) foo = fn : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
>>781
では、その量を返すという汎関数の具体例を挙げてみてくれないか?
まず 'a は型変数だから、「'a の引数は...」という用法は日本語として不適切
で、もし質問の意図が「関数 foo の定義における第三引数 x は、関数 foo の計算対象外か?」
であるならば、答えは Yes
引数 x は関数 f の計算対象であるけれど、汎関数 foo の計算対象ではない
汎関数を定義する場合、>>779 も決して間違いではないが、以下のように書いたほうが、
「x は(fooの引数ではなく)無名関数の引数である」という意図が理解しやすいだろう(言語はSML)
- fun foo f g = fn x => g (f x);
> val ('a, 'b, 'c) foo = fn : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
>>781
では、その量を返すという汎関数の具体例を挙げてみてくれないか?
784デフォルトの名無しさん
2013/10/28(月) 16:06:23.87 例えばmapをばらしたときに
let rec map f ls = match ls with
[] -> []
| x::xs -> f x :: map f xs ;;
val : ('a -> 'b) -> 'a list -> 'b list = <fun>
たぶんこんな感じで再帰になってるけど
無名関数は再帰で書けないから
無名関数で書けたら汎関数でよい?
let rec map f ls = match ls with
[] -> []
| x::xs -> f x :: map f xs ;;
val : ('a -> 'b) -> 'a list -> 'b list = <fun>
たぶんこんな感じで再帰になってるけど
無名関数は再帰で書けないから
無名関数で書けたら汎関数でよい?
785デフォルトの名無しさん
2013/10/28(月) 16:10:19.68 >>783
>では、その量を返すという汎関数の具体例を挙げてみてくれないか?
なんで?
とりあえず、定義っぽいのは見つけたよ。
http://www.encyclopediaofmath.org/index.php/Functional
>では、その量を返すという汎関数の具体例を挙げてみてくれないか?
なんで?
とりあえず、定義っぽいのは見つけたよ。
http://www.encyclopediaofmath.org/index.php/Functional
786デフォルトの名無しさん
2013/10/28(月) 16:41:42.96 ん?schemeはYコンビネータを使って
Y = (λf . (λx . f (x x)) (λx . f (x x)))
無名再帰ができると書いてあるな
何が違うんだろ?動的言語だと出来るとか?
Y = (λf . (λx . f (x x)) (λx . f (x x)))
無名再帰ができると書いてあるな
何が違うんだろ?動的言語だと出来るとか?
787デフォルトの名無しさん
2013/10/28(月) 17:26:32.96 >>784
汎関数の定義に無名関数を使うことは多いけど、
だからといって、すべての無名関数を用いた定義が汎関数となる訳ではない
だから「無名関数で書けたら汎関数でよい?」という質問については No だ
ただし「引数としてある関数を渡すとmapと同等な無名関数を返す」汎用的な関数が
定義できるのであれば、その関数は汎関数であるといえるだろう
なお、再帰と汎関数は直交するから再帰を伴わない汎関数も存在する(たとえば合成関数 o)
したがって「再帰で書けたら汎関数でよい?」という質問についても No となる
>>785
数学における用語「汎関数」と計算機科学における「汎関数」をごっちゃにしているのでは?
で、ここは(数学板ではなく)プログラム板だ
汎関数の定義に無名関数を使うことは多いけど、
だからといって、すべての無名関数を用いた定義が汎関数となる訳ではない
だから「無名関数で書けたら汎関数でよい?」という質問については No だ
ただし「引数としてある関数を渡すとmapと同等な無名関数を返す」汎用的な関数が
定義できるのであれば、その関数は汎関数であるといえるだろう
なお、再帰と汎関数は直交するから再帰を伴わない汎関数も存在する(たとえば合成関数 o)
したがって「再帰で書けたら汎関数でよい?」という質問についても No となる
>>785
数学における用語「汎関数」と計算機科学における「汎関数」をごっちゃにしているのでは?
で、ここは(数学板ではなく)プログラム板だ
788デフォルトの名無しさん
2013/10/28(月) 17:37:07.70789デフォルトの名無しさん
2013/10/28(月) 19:17:55.24 同値再帰型なんてのもあるんだね
OCamlって最強言語じゃね?
OCamlって最強言語じゃね?
790デフォルトの名無しさん
2013/10/30(水) 09:26:41.50 高階関数のままと
簡約した形と
評価までの速度に違いがあるのかな?
見やすさで選ばれてるだけ?
簡約した形と
評価までの速度に違いがあるのかな?
見やすさで選ばれてるだけ?
791デフォルトの名無しさん
2013/10/30(水) 13:20:56.16 cygwin64bitにもOCaml登場
792デフォルトの名無しさん
2013/10/30(水) 19:40:53.15 簡約した形とは
793デフォルトの名無しさん
2013/10/31(木) 18:52:31.73 ゴルフに出てくる;;の後の
1@0
って何ですか??
1@0
って何ですか??
794デフォルトの名無しさん
2013/11/01(金) 12:27:52.67 kwsk >>793 #ゴルフ
795デフォルトの名無しさん
2013/11/01(金) 21:39:55.79 コードゴルフか?
'a list -> 'a list -> 'a list じゃなさそうだし自分で定義してるんじゃね?
'a list -> 'a list -> 'a list じゃなさそうだし自分で定義してるんじゃね?
796デフォルトの名無しさん
2013/11/02(土) 18:53:12.88 S式みたいに
(< 1 2 3 4 5 6 7 8 9)
でtrue みたいに一発で計算ってできますか?
(< 1 2 3 4 5 6 7 8 9)
でtrue みたいに一発で計算ってできますか?
797デフォルトの名無しさん
2013/11/02(土) 19:14:43.17 そういうの書けばできるでしょ
798デフォルトの名無しさん
2013/11/03(日) 00:39:10.77 let rec less_than lst = match lst with
[] -> None
| x :: [] -> Some true
| x :: y :: xs -> if x < y then less_than (y :: xs)
else Some false ;;
なんか一行ですっきり書きたい
[] -> None
| x :: [] -> Some true
| x :: y :: xs -> if x < y then less_than (y :: xs)
else Some false ;;
なんか一行ですっきり書きたい
799デフォルトの名無しさん
2013/11/03(日) 09:57:51.24 f op xs = and $ zipWith op xs (tail xs)
800デフォルトの名無しさん
2013/11/03(日) 11:18:30.19 ん?それHaskellじゃね?
801デフォルトの名無しさん
2013/11/03(日) 11:27:32.82 こうかな。
fun lessThanForAll l = ListPair.all (op <) (l, tl l);
fun lessThanForAll l = ListPair.all (op <) (l, tl l);
802デフォルトの名無しさん
2013/11/03(日) 21:33:04.10 ocamlだとむずい
803デフォルトの名無しさん
2013/11/21(木) 06:02:11.85 盛り上がってるね。
804デフォルトの名無しさん
2013/11/25(月) 19:28:29.05 camlp4の入手先を教えて下さい
805デフォルトの名無しさん
2013/11/25(月) 20:49:45.57 ttps://github.com/ocaml/camlp4
806デフォルトの名無しさん
2013/11/25(月) 23:43:19.04 camlp4ってなんか開発側のよくわからない方針により大幅に変更されてもともと乏しかったドキュメントが一層整備されてない状態になってから使う気なくした。
807デフォルトの名無しさん
2013/12/13(金) 08:01:15.59 ああ、ハームが強いとか言ってたキルハイエナさんか
808デフォルトの名無しさん
2013/12/13(金) 08:02:13.53 誤爆
809デフォルトの名無しさん
2013/12/14(土) 16:52:12.01 fezにお帰りください
810デフォルトの名無しさん
2013/12/19(木) 13:30:02.87 ABC予想をOCamlで書いて
811デフォルトの名無しさん
2014/01/16(木) 19:03:28.13 row polymorphism(< method_foo : foo -> bar ; .. >の"..")が何か泥臭い感じがしてOCamlのOが好きじゃないのですが、
row polymorphismとexact typeを区別するべき理由ってあるのでしょうか。
row polymorphismとexact typeを区別するべき理由ってあるのでしょうか。
812デフォルトの名無しさん
2014/01/20(月) 01:16:23.89813デフォルトの名無しさん
2014/01/25(土) 20:39:37.59 みんなどこいったんや
814デフォルトの名無しさん
2014/01/27(月) 00:37:41.63 VBAを捨てて関数型言語がデフォルトでサポートされるのは、いつだろうか
815デフォルトの名無しさん
2014/01/27(月) 01:45:51.79 そんな日は来なくていい
816デフォルトの名無しさん
2014/01/28(火) 03:59:19.18 ExcelマクロにVBAとF#の選択肢が標準だったなら、関数型は主流になれる
817デフォルトの名無しさん
2014/01/28(火) 04:04:55.48818デフォルトの名無しさん
2014/01/29(水) 01:01:52.05 口を・・・つむぐ?
819デフォルトの名無しさん
2014/01/29(水) 01:04:27.44 口をつぐんだ人ならいるかもね
820デフォルトの名無しさん
2014/01/29(水) 21:56:44.82 あれでしょ、世の中に不満があるなら自分を変えろ、それが嫌なら耳と目を閉じ、口を紡いで…あれ?
821デフォルトの名無しさん
2014/01/29(水) 21:58:26.24 お口にチャックノリス
822デフォルトの名無しさん
2014/02/12(水) 23:38:39.41 Batteriesを使用しているコードをjs_of_ocamlで変換するとMissing primitivesという警告?が出て
JavaScriptの実行時エラーが出てしまいます
これはどうしたら解消できるのでしょうか
コマンド
ocamlfind ocamlc -syntax camlp4o -package lwt,js_of_ocaml.syntax,batteries -g -c foo.ml
ocamlfind ocamlc -package lwt,js_of_ocaml,batteries -linkpkg -o foo.byte foo.cmo
js_of_ocaml foo.byte
出ているメッセージ
Missing primitives:
caml_ba_init
caml_sys_const_big_endian
caml_sys_const_ostype_cygwin
caml_sys_const_ostype_unix
caml_sys_const_ostype_win32
caml_sys_const_word_size
create_nat
incr_nat
initialize_nat
mult_digit_nat
set_digit_nat
set_to_zero_nat
unix_inet_addr_of_string
JavaScriptの実行時エラーが出てしまいます
これはどうしたら解消できるのでしょうか
コマンド
ocamlfind ocamlc -syntax camlp4o -package lwt,js_of_ocaml.syntax,batteries -g -c foo.ml
ocamlfind ocamlc -package lwt,js_of_ocaml,batteries -linkpkg -o foo.byte foo.cmo
js_of_ocaml foo.byte
出ているメッセージ
Missing primitives:
caml_ba_init
caml_sys_const_big_endian
caml_sys_const_ostype_cygwin
caml_sys_const_ostype_unix
caml_sys_const_ostype_win32
caml_sys_const_word_size
create_nat
incr_nat
initialize_nat
mult_digit_nat
set_digit_nat
set_to_zero_nat
unix_inet_addr_of_string
823デフォルトの名無しさん
2014/02/13(木) 19:52:50.09 いくつかはjs_of_ocamlを更新すれば定義されてる
nat関係のは提供されてないのでダミーの関数を
funciton create_nat(){}のように自分で追加するか
batteriesのサブセットを切り出して使うか
core_kernel使ってる人もいるらしい
nat関係のは提供されてないのでダミーの関数を
funciton create_nat(){}のように自分で追加するか
batteriesのサブセットを切り出して使うか
core_kernel使ってる人もいるらしい
824デフォルトの名無しさん
2014/02/13(木) 23:42:09.86 js_of_ocaml 1.4.0を使っていますがこれではダメなのでしょうか?
nat関係は適当にスクリプトを書いて対応しようと思います
unix_inet_addr_of_stringはbatteries関係なく出てしまうようですね
nat関係は適当にスクリプトを書いて対応しようと思います
unix_inet_addr_of_stringはbatteries関係なく出てしまうようですね
825デフォルトの名無しさん
2014/02/13(木) 23:59:27.54 bigarrayサポートがまだgit版にしかない
unix_inet_addr_of_stringはruntime/unix.jsをリンクすれば大丈夫だけど
opamで入れたなら多分入ってない
unix_inet_addr_of_stringはruntime/unix.jsをリンクすれば大丈夫だけど
opamで入れたなら多分入ってない
826デフォルトの名無しさん
2014/02/14(金) 00:28:20.76 bigarrayサポートはnat関係のことですよね?
もしそうだとするとcaml_XXXは一体何が原因なのでしょう
それとunix_inet_addr_of_stringはopamで入れている以上直る?ことはないということなのでしょうか
もしそうだとするとcaml_XXXは一体何が原因なのでしょう
それとunix_inet_addr_of_stringはopamで入れている以上直る?ことはないということなのでしょうか
827デフォルトの名無しさん
2014/02/14(金) 00:35:30.75 調べてから書くべきでした
caml_XXXがbitarrayの関数ですね
caml_XXXがbitarrayの関数ですね
828デフォルトの名無しさん
2014/02/14(金) 00:36:59.24 big・・・
829デフォルトの名無しさん
2014/02/14(金) 00:45:48.03 > それとunix_inet_addr_of_stringはopamで入れている以上直る?ことはないということなのでしょうか
公式のも唯の空の関数なんで自分で定義しても一緒だし
開発版では修正済みだから1.99だか2.0が出てopamパッケージになれば大丈夫
公式のも唯の空の関数なんで自分で定義しても一緒だし
開発版では修正済みだから1.99だか2.0が出てopamパッケージになれば大丈夫
830デフォルトの名無しさん
2014/02/14(金) 01:06:19.10 なるほど
いずれ修正されることと今でも少し手を入れれば動くことがわかったので良かったです
親切にありがとうございました
いずれ修正されることと今でも少し手を入れれば動くことがわかったので良かったです
親切にありがとうございました
831デフォルトの名無しさん
2014/02/16(日) 20:02:36.51832デフォルトの名無しさん
2014/02/24(月) 14:22:45.10 toplevelで、コンパイルした自作のライブラリを使いたいとき、
#load "/foo/bar/my.cmo";;
とやったのですが、モジュールMyが無いと怒られたため、試行錯誤した結果、toplevelで
#directory "/foo/bar";;
#load "my.cmo";;
と2段階に分けるか、コマンドラインで -I /foo/bar としなければならなかったのですが、こんな不便な仕様が存在しているはずがないと感じました。
別ディレクトリにあるファイルを読み込む正しいやり方ではどうすればいいのでしょうか。誰か教えていただけたらと思います。
my.cmoは/foo/bar内で:`ocamlfind ocamlc -pkg batteries my.ml`とやって生成しています。
#load "/foo/bar/my.cmo";;
とやったのですが、モジュールMyが無いと怒られたため、試行錯誤した結果、toplevelで
#directory "/foo/bar";;
#load "my.cmo";;
と2段階に分けるか、コマンドラインで -I /foo/bar としなければならなかったのですが、こんな不便な仕様が存在しているはずがないと感じました。
別ディレクトリにあるファイルを読み込む正しいやり方ではどうすればいいのでしょうか。誰か教えていただけたらと思います。
my.cmoは/foo/bar内で:`ocamlfind ocamlc -pkg batteries my.ml`とやって生成しています。
834832
2014/02/24(月) 21:13:12.02 findlibのソースを読み、ocamlのソースを読んだ結果、不便な仕様は不便な仕様のようです。
諦めます。
諦めます。
835デフォルトの名無しさん
2014/04/20(日) 03:11:50.67ID:8gJTdsza 初学者の質問で申し訳ないのですが、
type hoge ={ t : 'a. ('a -> 'a) -> 'a -> 'a };;
という型で'a.('a -> 'a)の「 . (ドット)」は何を意味するのでしょうか?
type hoge ={ t : 'a. ('a -> 'a) -> 'a -> 'a };;
という型で'a.('a -> 'a)の「 . (ドット)」は何を意味するのでしょうか?
836デフォルトの名無しさん
2014/04/20(日) 10:33:29.81ID:Ar2j+hn/ ∀x. P(x) とかλx. x のドットと同じなんじゃない。
837デフォルトの名無しさん
2014/04/20(日) 15:50:34.61ID:jkTnuZFL structureのドットじゃないのか
838デフォルトの名無しさん
2014/04/23(水) 20:07:50.69ID:yuYA7aLZ >>835
型hogeは('a -> 'a) -> 'a -> 'aという関数tを持つものだよ、というだけなんだが、
まずその'a.っていう表記が無いとエラーが出る。
エラーメッセージに脊髄反射してtype 'a hoge = { t : ('a -> 'a) -> 'a -> 'a }と定義すると、
hoge型の値を作ったときint hogeとかstring hogeとかになって、
tも(int -> int) -> int -> intとかになっちゃう。
いや違う、オレはhoge型の値にidentity:'a -> 'aや(=): 'a -> 'a -> boolのように、多相性を持った関数tが欲しいんだって時に
'a.っていう表記を使う。
用途は何と問われるとちょっと困る程度にはマイナー。
型hogeは('a -> 'a) -> 'a -> 'aという関数tを持つものだよ、というだけなんだが、
まずその'a.っていう表記が無いとエラーが出る。
エラーメッセージに脊髄反射してtype 'a hoge = { t : ('a -> 'a) -> 'a -> 'a }と定義すると、
hoge型の値を作ったときint hogeとかstring hogeとかになって、
tも(int -> int) -> int -> intとかになっちゃう。
いや違う、オレはhoge型の値にidentity:'a -> 'aや(=): 'a -> 'a -> boolのように、多相性を持った関数tが欲しいんだって時に
'a.っていう表記を使う。
用途は何と問われるとちょっと困る程度にはマイナー。
839デフォルトの名無しさん
2014/04/23(水) 20:47:43.26ID:Rx5WvURy 何言ってるか分からないですね
840デフォルトの名無しさん
2014/04/23(水) 22:11:28.21ID:fVb21MOO aはずっと自由変数ですよ、特殊化されませんよ、ってのを明示するのに使うのか
841デフォルトの名無しさん
2014/04/23(水) 22:41:15.05ID:OJl2bhdr 基本的に、変数は(もし多相性を持っていても)初期化された時点で単相型になる
関数は呼び出されると引数が初期化されるのでその時点で単相型になる
関数自身を変数に入れると、呼び出してなくても変数を初期化しただけで単相型になる
>>835のhoge型の変数は基本とは違って、初期化しただけでは単相型にならないっぽい
関数は呼び出されると引数が初期化されるのでその時点で単相型になる
関数自身を変数に入れると、呼び出してなくても変数を初期化しただけで単相型になる
>>835のhoge型の変数は基本とは違って、初期化しただけでは単相型にならないっぽい
842デフォルトの名無しさん
2014/04/23(水) 23:18:57.87ID:ddVBuvib ためになるわー。
843835
2014/04/24(木) 21:17:13.51ID:4Y8KSBKa 回答ありがとうございます。与えられたチャーチ数の定義がこれだったのですが、周りに聞いてもあまり良い回答を得られなかったので、とても助かりました。
確かにチャーチ数であれば、多相性が維持されなければ駄目ですね。
確かにチャーチ数であれば、多相性が維持されなければ駄目ですね。
844デフォルトの名無しさん
2014/05/09(金) 06:41:29.78ID:gmFOA17u 最近JITが高速と聞くのですが
MLtonよりもJITが高速になる場合も
あったりするのでしょうか
MLtonよりもJITが高速になる場合も
あったりするのでしょうか
845デフォルトの名無しさん
2014/05/09(金) 11:29:52.70ID:88BxxZ+X 早くなるケースもあるけど
大抵のケースは、工夫しないと遅いので作り込みが大変
なので、大体が学生の研究で作って、終わっちゃうんじゃないかな。
速さというより、F#みたいにVM環境向けにbytecodeに落とし込むケースは、あるかも。
C言語の例だと、CERNで、HPのGotoさんが作ってたCINTというCインタプリタがインターラクティブ環境が必要ということで採用されてた。
現在は、規格に追従&共通基盤の恩恵を受けられるllvmベースのclingを開発中。
大抵のケースは、工夫しないと遅いので作り込みが大変
なので、大体が学生の研究で作って、終わっちゃうんじゃないかな。
速さというより、F#みたいにVM環境向けにbytecodeに落とし込むケースは、あるかも。
C言語の例だと、CERNで、HPのGotoさんが作ってたCINTというCインタプリタがインターラクティブ環境が必要ということで採用されてた。
現在は、規格に追従&共通基盤の恩恵を受けられるllvmベースのclingを開発中。
846デフォルトの名無しさん
2014/05/09(金) 12:50:13.67ID:viF1oq7i 10年以上前だがJavaのShuJITとかあったけど、その作者のプロジェクトを終えるに
あたってのまとめが、少々の理論的な優位点なんて、カネとヒトがたくさんある奴
(よーするにSun(当時)やIBMやHPの作ってるJVM)のパワーの前には吹き飛ぶ、
だった。
あたってのまとめが、少々の理論的な優位点なんて、カネとヒトがたくさんある奴
(よーするにSun(当時)やIBMやHPの作ってるJVM)のパワーの前には吹き飛ぶ、
だった。
847デフォルトの名無しさん
2014/05/09(金) 23:01:59.86ID:2uUNFhKi いまは、LLVM使うと巨人の肩に乗れるね。
JVMはHotSpotVMベースになってOpenJDKがオープンソースになってるからその上でいじれるように
JSのVMは激戦だけど、IEの実装以外はオープンソースという。
LuaJITは、個人でつくってるのでオーパーツ。
JVMはHotSpotVMベースになってOpenJDKがオープンソースになってるからその上でいじれるように
JSのVMは激戦だけど、IEの実装以外はオープンソースという。
LuaJITは、個人でつくってるのでオーパーツ。
848デフォルトの名無しさん
2014/05/10(土) 22:51:43.07ID:SJ0/UQRG 言語処理系の最適化はマンパワーが必要なので……今はトレンドがLLVMに色々集まる方向性かな
849デフォルトの名無しさん
2014/05/12(月) 21:26:19.65ID:dnbz3Cdj C++11という巨人の肩に乗ろう
850デフォルトの名無しさん
2014/05/12(月) 22:10:36.00ID:xvKPpHt2 コンパイラは、MLで作ると楽という話もあるが、、、
そこらへんはジレンマ?
そこらへんはジレンマ?
851デフォルトの名無しさん
2014/05/13(火) 09:28:41.53ID:34BaoroY >>848 js_of_ocaml ってJavaScriptで書くより最適化で高速になるからそういう方向もあるかも。
ttp://jsperf.com/js-of-ocaml
ttp://jsperf.com/js-of-ocaml
852デフォルトの名無しさん
2014/05/13(火) 20:13:34.93ID:5OIUPatf Excelのセル中で、F#で定義した関数が使えたら面白いかもと思った。
853デフォルトの名無しさん
2014/05/16(金) 08:18:12.70ID:72NRi/gE altJS としては最適化手法が数学的に議論されていて論文も出ている js_of_ocaml が最強なのでは:
ttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.224.7457&rep=rep1&type=pdf
ttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.224.7457&rep=rep1&type=pdf
854デフォルトの名無しさん
2014/05/16(金) 16:19:49.33ID:PtE4FBA8 LuaJITって個人のなの?ブラジル生まれだとは知ってたが。
あとllvmってコンパイラ基盤としては楽だけど、インタプリタとしてはちょっと難ありじゃないかしら。
適当に使うと最初の起動時間がかなり遅い。
あとllvmってコンパイラ基盤としては楽だけど、インタプリタとしてはちょっと難ありじゃないかしら。
適当に使うと最初の起動時間がかなり遅い。
855デフォルトの名無しさん
2014/05/17(土) 03:51:33.29ID:RMSyflwZ Luaは、ブラジル、リオデジャネイロの大学の研究グループから
LuaJIT作ってるのはドイツ、ミュンヘンの人
LuaJIT作ってるのはドイツ、ミュンヘンの人
856デフォルトの名無しさん
2014/06/01(日) 17:00:19.03ID:3NiYSkpU TAPLのexercise 3.2.5が分からん。なんで3.2.3の定義で S_i ⊆ S_{i+1} になるんだ?
各S_iは最初のS_1とかを除いて、disjointになるように思える。
本持ってる人教えて
各S_iは最初のS_1とかを除いて、disjointになるように思える。
本持ってる人教えて
857デフォルトの名無しさん
2014/06/01(日) 20:16:49.72ID:dwNATPFa■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 新米の予想収穫量、1割増 746万8000トン―農水省 [蚤の市★]
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【悲報】『岡田が日和って逃げたのに高市が自分から突っ込んだ発言をして自爆した』⬅国会答弁、実際はこれだった…… [158478931]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【実況】博衣こよりのえちえち歌枠🧪
- 外務省局長、よくわからないまま帰国へ [834922174]
