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/
328 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:45:31 .net] MLでGUIプログラミング、って時々やろうとするんだけど準備が面倒で挫折する。 lablgtk2とその依存ライブラリを標準で取り込んでくれ〜
329 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 19:42:48 .net] ファンクターでモジュールを作ったときに実行される関数がほしいんだけど OOのコンストラクタみたいなの
330 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 12:51:06 .net] V V (´・ω・`) うさちゃんピース
331 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 15:03:08 .net] 長澤うさみ
332 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 01:03:21 .net] >>325 module F (A : sig val x : int end) = struct let _ = print_int A.x end このファンクターに適当なモジュールを適用してごらん
333 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 22:25:03 .net] MLが関数型言語とか、最初に言い出したのは誰なのかしら
334 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:47:27 .net] \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ -‐ ー __ わ た し で す -- 二 / ̄\ = 二  ̄ | ^o^ |  ̄ -‐ \_/ ‐- / / ヽ \ / 丶 \ / / / | i, 丶 \ / / / | i, 丶 \
335 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 23:57:35 .net] プログラミング言語ML www.amazon.co.jp/dp/4756116418 J. D. Ullmanのこの本絶版になってたのか。 11年前に図書館で世話になったときは、面白かった。
336 名前:デフォルトの名無しさん mailto:sage [2010/08/06(金) 17:34:51 .net] 3.12.0来たのか
337 名前:デフォルトの名無しさん mailto:sage [2010/08/14(土) 16:35:21 .net] OCaml出たばっかりなのに人が少ないってどういうことなの
338 名前:デフォルトの名無しさん mailto:sage [2010/08/16(月) 01:05:07 .net] 平和ってすばらしい
339 名前:デフォルトの名無しさん mailto:sage [2010/08/16(月) 01:22:01 .net] windows用の最新版は3.11.0ってことですか?公式のリンクが切れてるという。。
340 名前:デフォルトの名無しさん mailto:sage [2010/08/16(月) 12:57:13 .net] 自分でビルドすればいいし、URLの修正ぐらい自分でやればいいし
341 名前:デフォルトの名無しさん mailto:sage [2010/08/21(土) 23:26:49 .net] windows 3.11.0 ocaml.jp/Chapter%2024%20The%20threads%20library >threads ライブラリを使用するプログラムは以下のようにリンクしてください: >ocamlc -thread other options unix.cma threads.cma other files って書いてあるのに ocamlc -thread unix.cma threads.cma thread.ml File "thread.ml", line 7, characters 8-21: Error: Unbound value Thread.create Threadはどこにあるんだ・・・
342 名前:デフォルトの名無しさん mailto:sage [2010/08/22(日) 01:37:10 .net] いっこうにMacPortsにこねえ>3.12.0 なんか既存アプリ壊してるとかあるのかね >>337 志村ー、"thread.ml"ー
343 名前:デフォルトの名無しさん mailto:sage [2010/08/22(日) 02:53:00 .net] >>337 圧倒的感謝 悩んでた自分が馬鹿らしい つーか馬鹿だった
344 名前:デフォルトの名無しさん mailto:sage [2010/08/22(日) 02:54:15 .net] ミス >>338
345 名前:デフォルトの名無しさん mailto:sage [2010/08/23(月) 01:39:58 .net] unitをどうやって代入させるかで数分悩んでしまった。
346 名前:デフォルトの名無しさん mailto:sage [2010/08/30(月) 15:11:49 .net] 可読なCに変換してくれるコンパイラはないのか
347 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 08:18:17 .net] これはOCamlの仕様書と思って良いのでしょうか? ttp://caml.inria.fr/pub/docs/manual-ocaml/index.html
348 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 22:05:30 .net] 仕様なんてない
349 名前:デフォルトの名無しさん [2010/09/21(火) 22:59:45 .net] 最近SML#が活発に更新されているようなので、0.56インストールしてみました。 集合演算を使ったプログラムを書こうとしているのですが、 CM周りの問題のせいか上手く動きません。 例えば、sml#では、 # structure SSet = RedBlackSetFn(struct type ord_key = string; val compare = String.compare end); stdIn:1.18-1.94 Error: unbound functor: RedBlackSetFn となります。smlだと、 - structure SSet = RedBlackSetFn(struct type ord_key = string; val compare = String.compare end); [autoloading] [library $SMLNJ-BASIS/basis.cm is stable] [library $SMLNJ-LIB/Util/smlnj-lib.cm is stable] [autoloading done] structure SSet : ORD_SET? と上手く動いています。 どのあたりを調べれば良いかのポインタだけでも構いませんので、 解決方法ご存知の方、教えていただけますでしょうか。
350 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 23:10:05 .net] SML#ってMSの.Net系言語だと思って無視してたんだけど、 全然関係無しなんだね。まぎらわしすぎw 解決方法でないレスでゴメソ >>345
351 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 02:13:02 .net] >>345 SML/NJだと自動でライブラリを読み込むようだが,SML#ではそうでないみたいね. ソースの smlsharp-0.56/smlnj-lib/Util/redblack-set-fn.sml にRedBlackSetFnが入ってるから,必要なファイル込みでuseすればいいんじゃないかな.
352 名前:345 mailto:sage [2010/09/22(水) 21:06:32 .net] >>347 $prefix/lib/smlsharp/smlnj-lib/Util 以下に各set用のfunctorが あったので、こちらをuseしてみたところ、 上手く動くようになりました。 ありがとうございます。 sml#ではCM上手く動かないのはやっぱり嫌だなぁ。 なんとかならないものか…
353 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:45:17 .net] 初歩の初歩ですいません、symbolic nameって何? ML for the working programmerを読み始めて早速引っ掛かってしまいました。
354 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:50:38 .net] alphabeticでない名前
355 名前:デフォルトの名無しさん mailto:sage [2010/10/16(土) 00:36:53 .net] Jane StreetのCoreってOCaml 3.12に対応してる? コンパイルに失敗する
356 名前:デフォルトの名無しさん mailto:sage [2010/10/24(日) 18:34:30 .net] エディタの桁数はいくつに設定していますか?
357 名前:デフォルトの名無しさん mailto:sage [2010/11/10(水) 00:02:31 .net] 遅レスだけど、桁数は80でインデントは4。 :se nu ai sw=4 ts=4
358 名前:デフォルトの名無しさん mailto:sage [2010/11/10(水) 23:06:49 .net] 私も桁は80(インデントは2)。 でも無名関数を多用すると桁が足りなくなるので 増やすべきか悩む。横長モニタ買いたくなる。
359 名前:デフォルトの名無しさん [2010/11/11(木) 21:11:38 .net] 通常は80に設定しているが、MLを編集するときは、120に増す。 とはいえ、100を超えると読みにくくなるので、適当に折り返すことにしている。 ただ、このコーディングルールに従えばOK、というようなのがないので、 毎回困っている。
360 名前:デフォルトの名無しさん [2010/11/11(木) 21:19:26 .net] >>305 解決策(SML/NJの場合の)が見つかった。 data label = A | B | C Unsafe.cast A: int; Unsafe.cast B: int; Unsafe.cast C: int; とすると、それぞれ0,1,2になる。
361 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 21:49:53 .net] >>356 MLは初心者だけど、>>305 は(コードの問題ではなく)設計の問題だと思う。 代数構造として、直積(組型やレコード型)と列(リスト型や配列型)は全く別の概念。 コンパイルの前に要素の数が決定できるなら直積を使うべきだし、 実行してみないと決定できないのなら列を使う。あるいは動的なシンボルで ランダムアクセスしたいならハッシュ型を、更に順序性が必要ならB木型を。 これらすべてはプログラムの設計工程で決定しておくべきもの。 設計工程での不具合をコーディング工程で取り返そうとするのは、よくある過ち。 >>356 の解決策というのは、いわゆる「泥縄」的手法。いずれ破綻する。 いくらMLが美しい言語でも、設計が汚ければコードはグチャグチャになるよ。 逆に、設計が適切であれば手続き型言語であっても美しいコードは書ける。
362 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 21:54:05 .net] そんな大仰な話でもないだろ。 Pascal、Modula系からMLやら(その他EiffelやらOberonやら)への流れで、 なぜか列挙型を配列のインデックスに使う機能が捨てられた悲しいね、ってだけの話だ。
363 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:25:29 .net] だから「なぜ列挙型を配列のインデックスに使う機能が捨てられたのか?」と
364 名前:いう 疑問の答えを考えなさい、と言ってる。 列挙型(特に関数型言語の直和、MLのdatatype定義)というのは、要素を数え上げることで 集合を定義している。いわゆる「内包的定義」だ。集合なのだから、その要素間に順序性は無い。 もし要素間に順序性が求められるのなら、列として(集合とは別に)それら要素を定義する。 そしてそれらの間の関係を写像(関数あるいはハッシュ型などで)させることで対応づける。 こういった考え方(設計技術)無しに、力任せのコーディングテク(技法)で解決しようとするのでは、 (特にMLのような明瞭な型体系を持つ)関数型言語の利点は、全く生きないよ。 型をわずらわしく感じるうちは、いつまでたってもIT土方のままだ。(型定義 = 設計なのに....。) 結果的に「関数型言語を使っても美しい(高品質な)コードは書けなかった。チクショウ騙された。」 という誤解が生まれる。 [] [ここ壊れてます]
365 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:25:48 .net] >>357 305が既にコーディング工程まで来ているという根拠は?
366 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:29:03 .net] >>359 とか自分で読み返して恥ずかしくないのか? 列挙型がインデックスの配列なんて、単にmapの効率的な表現でしかないだろ……。
367 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:33:39 .net] あと「なぜ列挙型を配列のインデックスに使う機能が捨てられたのか?」は 単純に(非常に残念ながら)固定長配列型が採用されなかったからだろうね。 全部可変長配列ならインデックスに演算不可能な型を使えてもしょうがないから。
368 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:39:12 .net] >>357 根拠は、>>305 が使った「スタイル」と言う言葉。 >>361 >単にmapの効率的な表現でしかないだろ……。 その通り。より正確には「写像の効率的な実装(コード化)」だね。 >>357 で書いたのは、実装(コード化)で解決しようとせずに設計に立ち返りなさい、という話。
369 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:44:09 .net] 正直「いちいちmap作るの効率悪い&めんどくさいからちゃっちゃとUnsafe.castしてしまえ」ってだけの話なのに 設計どうこうの話で絡む理由がわからんな。 それこそ言語機能の問題でしか無いんだから、実装の詳細もいいとこだろうに。
370 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:52:14 .net] そうだね。プログラミング言語なんて道具にすぎないんだから、本人がどう使おうが自由だし。 下流工程で延々とモガき続ける、いわゆる土方から抜け出せるよう助言したつもりだったが、 余計なお世話だったかもしれない。これで落ちるよ。
371 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:57:51 .net] だから、その本人が今現在下流工程にいるという根拠はなんなの?
372 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:59:31 .net] 大体設計としてはインデックス値集合からのmap確定で、見直す要素なんて全く無いだろ。 余計なお世話どころか、勘違い甚だしすぎる。 SML使う土方現場なんて日本にあったら俺が行きてーよw
373 名前:365 mailto:sage [2010/11/11(木) 23:14:44 .net] 落ちたつもりだったけど、自分のカキコにアンカ間違いがあったから、そこだけ訂正。 >>366 スマン。>>363 の >>>357 >根拠は、>>305 が使った「スタイル」と言う言葉。 という部分の>>357 というアンカは間違いだった。>>360 宛のレスとして読み直してくれ。
374 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 23:22:16 .net] 今ひどい泥縄を見た。
375 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 23:27:02 .net] こんなに人いたんだな
376 名前:デフォルトの名無しさん [2010/11/12(金) 00:43:43 .net] 305&356です。 私はただの数値計算屋なので、このような助言はありがたい。 型の設定は大切にしています。ただ、研究用のプログラムなの で、予想外の変更が生じるし、過剰に一般的に作ると使いにくく なるので、なかなか難しいところです。 いまの問題でゆうと、対象の要素数が100とか1000であれば、 ハッシュを使う選択をしますが、当面の問題では、10以下の 固定個なので、列挙子を使いたい訳です。これは、NJの対話型 環境で式を評価したときに、 列挙子名が表示されるためです。 ※NJのハッシュは組み込み型であるvectorほど使いやすくはない ので、ハッシュを避けがちになるという別の問題はある。 なおUnsafe.castは前にOcamlにはmagicがあるという話が出たの で、備忘録的に書いただけです。
377 名前:デフォルトの名無しさん [2010/11/13(土) 19:02:17 .net] SML# 0.60 は大堀先生からアナウンス
378 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 21:11:23 .net] いらねー
379 名前:デフォルトの名無しさん mailto:sage [2010/11/16(火) 01:51:58 .net] ML が研究されているという情報。 それも国内で。 結構なことじゃないの。
380 名前:デフォルトの名無しさん [2010/11/17(水) 03:57:12 .net] ようやくMPIを使っての並列起動に成功した……。Intel MPIの32bit版 が使えることのに気付くのにも時間が掛かったが、まさか、.cm/への 書きこみで競合が起こるとは想像だにできなかった。
381 名前:デフォルトの名無しさん mailto:sage [2010/12/07(火) 20:39:56 .net] なにこれ? From: Julian Assange <proff@i...> Subject: call for ocaml volunteers caml.inria.fr/pub/ml-archives/caml-list/2000/08/6b8b195b3a25876e0789fe3db770db9f.en.html
382 名前:デフォルトの名無しさん [2010/12/17(金) 00:13:19 .net] windowsでグラフィックスを扱うライブラリ としてsml_tkがあるようだが、Posixストラクチャ とか使っててコンパイルできない。
383 名前:デフォルトの名無しさん mailto:sage [2011/02/11(金) 13:52:35 .net] standard MLとかって、もう終わった言語なの?
384 名前:デフォルトの名無しさん [2011/02/16(水) 22:27:36 .net] NJのバージョンはときどき上がっているようだが、64bit版の開発が着手される 気配はないねぇ。
385 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 00:06:39 .net] Objective SML とかあればなあ・・・
386 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 00:16:06 .net] ええ。 ocamlのobject的な機能って使ってる人いるのかね?
387 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 00:31:11 .net] Ocaml みたいな奴だったらイラン
388 名前:デフォルトの名無しさん mailto:sage [2011/02/27(日) 19:00:35.30 .net] なんでCoqのスレとかないの?
389 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 06:23:51.79 .net] >>384 あなたやその他の人が誰も立てないから。
390 名前:デフォルトの名無しさん mailto:sage [2011/03/02(水) 23:24:04.60 .net] >> 383 先日のRuby会議でCoqの話題が多かったようです。 ttp://partake.in/events/47ccda3b-82d2-4f89-aa83-395a26545b62
391 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 07:11:19.47 .net] またITプランニングのやつらか!
392 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 15:27:53.72 .net] 「最近、関数型言語が流行ってんだってね?」 私にそう言ったのは、大法螺吹きの異名で名高い営業マン。 もちろん、彼はプログラミングのことは全然知らない。 たぶん関数型言語のこともどっかのポルノ雑誌ででも読んだのだろう。やれやれだ。 「岡村ってのが新しいらしいね。」 なんだよ、その岡村って…。もしかして日本人の開発した関数型言語か?岡村って誰だよ。 「やねさんなら、当然、岡村、使ったことあるよね?」 使ったことあるどころか、名前すら知らんよ。なんだよ、岡村って…。 「あれー?やねさんともあろう御人が、岡村も知らないとは…」 いや、マジで知らんよ。なんなんだよ、それ。 「そうかー。知らないのかー。やねさんでも知らないのかー。」 そう言われて「なんだかなぁ」と思いながら帰ってきて、「関数型言語 岡村」でググって見たけど、そんなの出てこねーよ。 「なんだよ、また、いつもの大法螺かよ!」と思って、布団に入って寝てたら、深夜の三時に、「もしかして、岡村ってOCamlのことじゃね?」と夢のなかで気づいて、いま悔しくて壁を思いっきりグーパンチで殴ってるところ。
393 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 19:43:34.45 .net] おいおい、岡村!アラン、見ランダ? Yacc束してたのに、Matlab。 あだー。アラン、隙間フェチ、すから。 見つけるのは一苦労じゃろーね。Sque無い 嗚呼、くっ。一
394 名前:盾ノエイダみる予定だったのに・・ 遅coqしたら理彩のレイジがMaximaになる メーリングリストで蓮家等に聞いてミルか Amigaとう。んじゃ,またAgda! Orc、またAgdaな [] [ここ壊れてます]
395 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 21:16:39.93 .net] おつかれ〜
396 名前:デフォルトの名無しさん mailto:sage [2011/03/13(日) 21:05:50.23 .net] たててやったぞ Coqスレ hibari.2ch.net/test/read.cgi/tech/1300017923/
397 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 19:12:41.89 .net] >>388 ワロタwww
398 名前:デフォルトの名無しさん [2011/04/04(月) 00:00:15.57 .net] NJのUnsafe.castのあまり意味のない使い道 (fn x => x (Unsafe.cast x)) (fn x => (Unsafe.cast x))
399 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 00:35:09.27 .net] type 'a safe = Safe of ('a safe -> 'a);; let safe (Safe x) = x;; print_char((fun x -> safe x x) (Safe (fun x -> safe x x)));;
400 名前:デフォルトの名無しさん [2011/04/05(火) 21:49:01.21 .net] >>392 OCamlならこんなかんじ? (fun x -> x (Obj.magic x))(fun x -> x (Obj.magic x));;
401 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 09:44:35.08 .net] OCamlに興味が湧いてとりあえず五十嵐某の書籍買ってみた。 で、技術書買って真っ先にやることと言えば正誤チェック。 つ・・つかえねぇ・・・この本 誤謬の嵐だぜこりゃw 量がハンパネェ 本として機能してない 残念だがゴミ箱へ
402 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 21:22:48.50 .net] >>395 そんなにひどいの?
403 名前:デフォルトの名無しさん mailto:sage [2011/04/15(金) 00:44:37.03 .net] >>395 うん? 自分にとっては、haskellの学習に大きく寄与したぞ? コラムの再帰に関する格言と、その本質に言及した言葉が無かったら、関数型言語を挫折してた (関数型言語の魅力が解らなかっただろう) 自分は、この人にhaskell版を書いて欲しいぞ 今なら言える 手続き型言語は全体的に(それをするには)「どうする」で作り、関数型言語は、全体的に(それは)「何か(あるいは、どんなものか)」で作る言語だと
404 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 12:37:58.03 .net] >>395 俺も最近買ってしまって読んでるんだが、誤植の場所を教えてくれ。 素人でもわかるものなのか?
405 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 12:57:42.57 .net] あれってネット上で読めなかったか
406 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 13:50:43.61 .net] >>395 > 誤謬の嵐だぜこりゃw >>398 > 俺も最近買ってしまって読んでるんだが、誤植の場所を教えてくれ。 「誤謬」のある本と「誤植」のある本の違いは大きい。 本当はどっち?
407 名前:398 mailto:sage [2011/04/16(土) 17:02:39.70 .net] >>400 すまん。ちゃんと見てなかった。誤植じゃなくて誤謬か。 で、どこなんだろう。
408 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 20:32:04.80 .net] >>401 両方。誤植も誤謬もある。 www.sato.kuis.kyoto-u.ac.jp/~igarashi/OCaml/ 技術書でこれだけの間違いがあったら、どうやって本として機能するんだろう?
409 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 21:40:45.30 .net] >>402 そのページ印刷して本に挟んどけよ
410 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 22:50:12.49 .net] 間違いは無いに越したことはないけれど、 これぐらいの量の間違いは大したことないと思う。
411 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 22:51:29.38 .net] 十分大した事あるな
412 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 00:31:01.42 .net] 技術書読んだことあんのか?
413 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 08:22:14.27 .net] 技術書は静的型付けじゃないからな
414 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 11:08:36.97 .net] コーダとベリファイヤの性能が低い
415 名前:デフォルトの名無しさん mailto:sage [2011/04/20(水) 18:55:51.89 .net] > 自分は、この人にhaskell版を書いて欲しいぞ アマゾンで下のレビュー書いた人かいw
416 名前:デフォルトの名無しさん [2011/04/20(水) 20:57:40.94 .net] ちょっと困っていることがあるので、助けてください。 ヨウ素がリストの参照になっているようなベクトルを用意して、各要素に データを追記していくような処理
417 名前:をさせると(具体的には、複数の時系列を記録 したファイルがあって、これを時間順に読む)、追記回数の自乗のオーダの 処理時間が掛る。リストの先頭に追加しているだけなので、線形時間でやって ほしい。 [] [ここ壊れてます]
418 名前:デフォルトの名無しさん [2011/04/20(水) 20:58:06.52 .net] (* コード例) val bigV = Vector.tabulate(1000000, fn _ => ref (nil:int list)) val dat = Vector.tabulate(1000000, fn i => i) val t0 = Time.now(); val tLast = ref (Time.-(t0,t0)); fun showTime() = let val tLast' = !tLast val () = tLast := Time.- (Time.now(), t0) val dt = Time.-(!tLast, tLast') in Time.toString (!tLast)^","^ Time.toString dt end fun append k = (print (Int.toString k ^ "," ^ showTime()^ "\n") ;Vector.app (fn box => box := k :: !box) bigV ) val () = Vector.app append dat
419 名前:デフォルトの名無しさん mailto:sage [2011/04/20(水) 21:15:18.30 .net] ヨウ素とかベクレルの話かとオモタ
420 名前:sage [2011/04/20(水) 21:46:08.88 .net] 辞書(と見逃した自分も)がそっち方向に過学習してしまったらしい。すまん。
421 名前:デフォルトの名無しさん mailto:sage [2011/04/21(木) 00:19:44.70 .net] 自分の環境ではサンプルプログラムの実行に二乗オーダは見られなかった。 bigVの大きさを一桁下げると速度がぐっと変わるし、GCとかのせいな気がする。
422 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 20:50:17.84 .net] SMLの勉強していて思ったけど、最初に学ぶ言語として関数型言語はやはり難しいかも知れない。 C言語だとHello Worldから始まって、リスト処理は構造体とポインタの応用問題という位置づけだった。 SMLはいきなりリストと再帰の話から始まるw BASICは、LISPよりも後から開発されて、しかも同じダートマス大学発祥だけど、 リスト処理が実装されていないのもそれなりの理由があったのかなと思う。
423 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 21:56:29.55 .net] 奥さん、そこで Factorですよ。
424 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 22:12:07.58 .net] >>415 > BASICは、LISPよりも後から開発されて、しかも同じダートマス大学発祥だけど、 > リスト処理が実装されていないのもそれなりの理由があったのかなと思う。 LISPとBASICじゃ作られた目的が全然違う それに当時の計算機の性能ではリスト処理は時間的にもメモリ的にも大変重い処理だった 今の感覚や価値観は60年代の計算機や言語・ソフトの評価や判断には全く通用しない
425 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 00:17:49.66 .net] 最初は易しい言語で、ってことが重要に思えるところ、 その信念に基づいた妄想を長々と書きこむところ、 これはその人の性質をよく表していると思う。 こういうひとのためにも緩い言語は必要。 ML系はそういうのとは全然違う。
426 名前:デフォルトの名無しさん [2011/04/27(水) 14:00:52.81 .net] >> 415 ポインタ+構造体+慎重な操作を免除して、いきなりリストが使えるのが 売りだと思うのだけれど。 また、MLは破壊的代入+whileループが特別な儀式をしなくても使えるの で、再帰を学ばなくてもある程度は使える。
427 名前:デフォルトの名無しさん mailto:sage [2011/05/18(水) 01:03:29.10 .net] 眉間のτとλ皺が特徴。 やつを追う前に言っておくッ! おれは今やつのStateTをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『おれは奴の前で階層を lift していたと i|:!ヾ、_ノ/ u {:}//ヘ 思ったらいつのまにか lift が消えていた』 |リ u' τ ,ノ _,!V,ハ | /´fト、_{λ{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった… ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} ∀:::ヽ 頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ キャストだとかサブタイピングだとか / // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ ノ ' / ノ:::::`ー-、___/:::::// ヽ } _/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの片鱗を味わったぜ…
428 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 22:38:54.29 .net] 保守