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/
301 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 08:50:49 .net] >SMLにはレコード更新の機能がなく、日常的に苦労している すげえ、日常的にか。仕事に使ってるの? >ただ、欲を言うと、レコード拡張も言語としてサポートして欲しかった。 レコード拡張って?
302 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 17:27:31 .net] MLton って無限ストリーム使ったプログラムも最適化してくれるの?
303 名前:デフォルトの名無しさん [2010/05/18(火) 22:20:33 .net] >>297 小規模な数値計算をしているだけで、すごいことはしていません。 Fortranで十分ですが、いくつかの部品を定義して、NJの対話環境 で評価することで、試行錯誤できて重宝してます。 レコードの拡張 連結と言うべきだった。 {a=1,b=2}#{c=3} val it={a=1,b=2,c=3} ができると嬉しい。
304 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 01:51:26 .net] Vimのインデントファイルで ocaml.vimやomlet.vimより いいものありませんか?
305 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 21:02:03 .net] MLで書くときはスタイルに悩むね。 inの前で改行すべきか? 連続するletはインデントすべきか? などなど
306 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:36:50 .net] スタイルは悩みますね。 今のところ連続するletもinの後も インデントしないようにしています。 ただ、こう書きたいという思いがあっても Vimのインデントファイルでは うまくいかないことがあって困ります。 ユーザーの多そうなEmacsを使った方が いいのかもしれません。ま、それを 言ったら関数型言語もHaskellということ になるかもしれませんが…
307 名前:デフォルトの名無しさん [2010/06/04(金) 16:33:24 .net] Ocamlで let plus x y = x + y があるとき xより先にyに代入する方法はあるますか?
308 名前:デフォルトの名無しさん [2010/06/04(金) 20:40:08 .net] λ式を使えば良いのでは。 すでに、y = aの代入が決まっているときは、 (fun x -> plus x a) まだのときは、 (fun y -> fun x -> plus x y) を使う。 ※SML使いなので、構文上の間違いはあるかもしれぬ。
309 名前:デフォルトの名無しさん [2010/06/04(金) 20:44:13 .net] これも、一種のスタイル問題だが、 列挙型を定義するときに、 datatype X = X1 | X2 | X3 | ... とするか type X = int val X1 = 1 val X2 = 2 ... とするかで悩んでしまう。最初は、vector (ランダムアクセス)を使わない 見込みだったのだが、必要になったときのことを心配してしまう。
310 名前:デフォルトの名無しさん [2010/06/04(金) 22:34:46 .net] そういう心配をしなくていいくらいコンパイラの最適化は賢いから安心して代数データ型を使えという話をどこかで見た気がするのだがどこだか忘れてしまったな。
311 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:41:07 .net] succ X1が欲しいという話だと思ったんだが。 ……俺ならObj.magicしちゃうな
312 名前:デフォルトの名無しさん [2010/06/04(金) 22:44:58 .net] d.hatena.ne.jp/sumii/20060918/1158537612 これだった。あんまり突っ込んだこと書かれてなかったな。でもこういう話じゃないの?
313 名前:デフォルトの名無しさん [2010/06/05(土) 18:55:54 .net] >>304 ありがとうございます。
314 名前:デフォルトの名無しさん [2010/06/05(土) 23:46:13 .net] >> 308, 307 ありがとうございます。そうです、O(1)で整数に変換できるかを心配していました。
315 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 00:10:32 .net] O(1)での変換速度を気にしなきゃいけないくらい沢山定義するなら、 DEFINEマクロ使った方がいいんじゃないかなぁ。あ、OCamlの場合だけど。 (* compile with -pp "camlp4orf" *) DEFINE A = 1 let _ = print_int A
316 名前:デフォルトの名無しさん [2010/06/14(月) 19:50:39 .net] >> 311 Ocamlマクロ使えましたね。いいなぁ〜
317 名前:デフォルトの名無しさん [2010/06/14(月) 19:54:03 .net] 破壊的代入(参照型)の利用はひかえめに、とはいろんなガイド/教科書に書いて あるけど、どの程度が許容範囲なんだろう。 与えられたリストの部分和を要素とするリストを返す関数を書いてみると、 破壊的代入を使ったバージョンが一番短く直観的に思う。 fun series xs = (fn s => map (fn i => i + !s before s := !s + i) xs) (ref 0) fun series2 xs = (rev o #2) (foldl (fn (i,(s,ys)) => (i+s,(i+s)::ys)) (0,nil) xs) fun series3' s (i::is) = (i+s) :: series3' (i+s) is | series3' s nil = nil; val series3 = series3' 0 関数プログラマ的には、どれがいいのだろう。 (もっといい書き方もあるかもしれない)
318 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 19:58:31 .net] 個人的にはこだわらずに破壊的代入もがんがん使えって思うけど、その前にmapの捜査順は前からって保証されてるのか?
319 名前:デフォルトの名無しさん [2010/06/14(月) 21:34:29 .net] 確かに、一般的には規格違反かもしれない。ちなみに www.smlnj.org/doc/basis/pages/list.html には map f l applies f to each element of l from left to right, returning the list of results. と書かれているが、"from left to right"を副作用を持つfを考慮して、そう書いているのか は不明。
320 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 05:25:03 .net] >>313 効率気にしないなら下のようにも. fun series nil = nil | series (h::t) = h :: map (fn x => x + h) (series t) 効率を気にするなら,series3がいいと思った. refを使うと現在の変数の状態を気にする必要があって大変. series2はやってることはわかったけど,コードがなんとなく見づらい.
321 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 12:11:01 .net] >現在の変数の状態を気にする必要があって大変 refが大変で、引数変数が大変でないと思う辺り、関数型言語プログラマだなあ。 俺はまだそこまでの境地には達してないや
322 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 18:09:00 .net] 「こんなこともあろうかと」いいながら、用意しておいたscanlを使うのが一番直感的。
323 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:47:50 .net] なるほど scanl か mapAccumL で満足しそうになっていた
324 名前:デフォルトの名無しさん [2010/06/17(木) 21:08:40 .net] >> 316 ひさしぶりに何か美しいものを見た気がします。 >> 318,319 HaskellのData.Listにある関数ですね。GHCは入れてあるが、ほとんど使って いないので、知らなかったのですが、いっぱい関数が用意されてますね。
325 名前:デフォルトの名無しさん [2010/06/18(金) 19:16:35 .net] NJに付属するCMLって、multicore対応じゃないみたいですね。 (tar ballのToDoに書いてあった) ノード内並列には使えない。残念。
326 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 19:31:43 .net] SML なら Poly/ML がネイティブスレッドに対応してるよ
327 名前:デフォルトの名無しさん [2010/06/18(金) 20:52:49 .net] >>322 ありがとうございます。 ここを www.polyml.org/Doc.html さらっと見てみましたが、 結構しっかりした実装のようですね。 これは、SML/NJからの移行を検討する価値がある。 他に、 - Windowsプログラミング - FFIが簡単(のように見える) が気に入った。
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));;