[表示 : 全て 最新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/
879 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:04:44 ] 我が輩は関数である。名前はまだ無い。 どこで生まれたかとんと見当がつかぬ。何でも薄暗いじめじめした所で他の関数に渡された事だけは記憶している。
880 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:08:47 ] そうだな。let ()だと、右辺がunitを返す場合しか使えない
881 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:51:42 ] 本当はちゃんと意味を表す名前をつけるべきなんだろうけど、 関数型言語でそれをやると馬鹿にされそうで、ためらってしまうな
882 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:32:47 ] >>880 unitを返すのが分かるなんて 何て素敵な!
883 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:44:11 ] >>880 >>882 の通りで、 let _ = Printf.printf "%d %d" 1 のようなコードを書いて、先生、何も起こらないんですが、と聞かれたことがある。 そりゃ見た目何も起こりませんがな。
884 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:06:10 ] let main = ... let _ = ... の場合、副作用がなく返り値に意味がある別の関数を誤って呼んでしまうミスを見つけづらい。 たとえば ioaccess_in : ... -> int と ioaccess_out : ... -> unit が定義されているとして let _ = io_access_out ... let c = io_access_in ... let _ = io_access_out ... let _ = io_access_out ... let c = io_access_in ... let _ = io_access_in ... let _ = io_access_out ... let _ = io_access_out ... let c = io_access_in ... let _ = io_access_out ... let _ = io_access_out ... let c = io_access_in ... let _ = io_access_out ... のようなコードのバグ。 let () = ... なら、そのミスも型検査で検出できる。
885 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 09:11:08 ] あるある
886 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:32:14 ] ここ alain.frisch.fr/soft.html#patches の patch_record が凄く魅力的なんだけど、同じことを camlp4 で できないかな。
887 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:52:22 ] 型に unaware な camlp4 では全く同じ事は無理です local open を使うか、 module alias でも使って文字数を減らすぐらいかなぁ fun r -> open Very_long_module_and_I_do_not_want_to_type in r.x fun r -> let module M = Very_long_module_and_I_do_not_want_to_type in r.M.x
888 名前:デフォルトの名無しさん [2009/04/08(水) 15:10:44 ] >>879 コピペだけど 【手続き型】 吾輩は猫である。 名前はまだ無い。 どこで生れたかとんと見当がつかぬ。 何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。 吾輩はここで始めて人間というものを見た。 【関数型】 人間というものを始めて見た薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶しているがどこで生まれたかとんと見当がつかず名前がまだ無い猫である吾輩。
889 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:53:44 ] 時間が経過すると… 【手続き型】 吾輩は猫である。 親ゆずりの無鉄砲で子供の頃から損ばかりしている。 「おい、地獄さ行ぐんだで!」 ウスウスと目を覚ました時、蜜蜂の唸るような音は、まだ、その弾力の深い余韻を、私の耳の穴の中にハッキリと引き残していた。 国境の長いトンネルを抜けると雪国であった。 名前はまだない。
890 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:10:18 ] …………ブウウ懼懼懼懼懼懼ンンン懼懼懼懼懼懼ンンンン………………。
891 名前:デフォルトの名無しさん [2009/04/09(木) 19:16:00 ] CMの使い方を教えてください。 SML/NJで、use文のカスケードではロードが厳しくなってきたので、 CMに移行しようとしているのですが、以下の点で困っています。 (1) 対話型環境を使って計算したい。そのため、トップレベルに関数を 展開したいが、.cmにはトップレベル関数・値を書けない。 今のところ、open XXX; がならんだ .smlを作って、これをuseしている。 (2) 中置演算子の割り当てをトップレベルに置きたい 目的は、(1)と同じ。こちらは、実現方法が見つからない。
892 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 17:14:43 ] float は boxing して扱われ、気合の入った最適化をしているわけでもないっぽい OCaml が レイトレースのベンチマークで C++ と勝負できる位置にいるのはなんで?
893 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 20:17:02 ] >>892 関数型言語は手続き型言語より最適化しやすいよ 関数型は中間表現で CPS 使ってる奴が多いから、 気合いが入って なくても SSA 使ってる手続き型言語程度のコードは吐き出しそうな 気がする fortran を除くと、手続き型言語のコンパイラの内部表現に SSA を 使うのが一般的になったのは、わりと最近じゃなかったっけ? gcc だと 4 系列から SSA だっけか?
894 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 20:46:10 ] とりあえずF#からいじり始めてる新参者なんですが、immutableなデータの取り扱い教えてくんなまし immutableにするとMapReduceみたいにナイスに並列化も出来てクールだぜというのはわかったんですが、その結果とかで何処かにステートのチェンジが起きますよね? Haskellのゲームかなんかでキャラの移動とかされた結果のそのシーンの状態を新しいWorldとして作っていくことでimmutableを維持してるとか言ってたんですが、業務アプリとかだと同なるんざんしょ。 別の記事か何かで、全体のデータ構造をobject-oriented西といて、その間の処理とかをfunctionalにするのが現実的だとかも言ってたんですが。 教えてエロイ人
895 名前:デフォルトの名無しさん [2009/04/29(水) 00:17:23 ] smlって実行結果が長いとき#で省略されちゃいますよね?あれを最後まで表示 させたいときって、どうすればいいんですか?printの引数はstring型でsring にするにはInt.toString(a)などとすればできますが、intとchar型くらいしかできませんよね? 新しくつくった型には使えないのでどうすればよいかわからなくて・・・ 誰か教えて下さい。
896 名前:デフォルトの名無しさん [2009/04/29(水) 07:05:49 ] 別にデータをimmutableにするのにゲームも業務アプリも変わんないんじゃん
897 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 09:25:16 ] データ毎回全部作り直すの?
898 名前:デフォルトの名無しさん [2009/04/29(水) 22:16:45 ] そうしてもいいけど、、、 普通は関数的なデータ構造では更新後と更新前が「ある程度共有される」。 たとえばリスト構造の先頭のほうを作り直す場合とかそうでしょ。 なおかつ共有されちゃっててもこまらないのはデータがimmutableだからこそだともいえる。 そしていろいろなデータ構造でimmutableでありながらも空間効率や時間効率のいいアルゴリズムが開発されてる。 Haskellのゲームかなんかで云々っていうのもデータを毎回全部作り直すという話じゃないと思うよ。
899 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 20:03:46 ] 「プログラミングの基礎」浅井健一という本は、 他の言語経験が無くOCamlがわからない人でもついていけますか?
900 名前:デフォルトの名無しさん [2009/05/01(金) 20:24:05 ] >>899 どのように考えながらプログラミングをしていくかが丁寧に書いてあるのでお勧めです。 もう少し高度な機能が知りたくなったら「プログラミング in OCaml」。
901 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 01:25:00 ] >>895 ぱっと思いついたのは、print関数自作かSMLFormat使う
902 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:04:23 ] 質問です ML系またはHaskell系言語でGUI開発に便利なRAD環境が充実している言語って何でしょうか? できれば個人的なお勧め開発環境も教えていただければうれしいです。
903 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:22:56 ] VBに匹敵するようなものはないなぁ
904 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:37:35 ] F#でよくね?
905 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:12:06 ] OCaml にありそうな気がす
906 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:30:47 ] ここまでGUIプログラムを開発した人なし
907 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 11:28:08 ] LablGtk の glade インターフェースを 5 年前に使ったけど、まあ、glade だったよ。
908 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 14:22:49 ] GUIイラネ
909 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 15:00:29 ] >>908 で?
910 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 15:01:42 ] 別にGUIイランやつはイランで結構だろ。 誰も強制なんかしてないんだし。 ここでそんなこと表明する意味がわからん。
911 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 16:25:14 ] GUIイラネの人じゃないけど、言語処理系をパッケージシステムで インストールするとき、最近はGUIツールキットまで一緒に入れようと するのが結構あってうざいんだよね。幸いML関連でそういうのにあたった ことはないけど、こないだMacPortsでSWI-PrologとErlangを入れたら いろいろ勝手に入って来て大変だった。オプションでも外せないし。 将来lablgtkなんかを強制されるようになったらOCaml捨てたくなる。 こっちは今後もコマンドラインだけでひっそり生きていきたいんだから ほっといてほしい。
912 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 16:42:41 ] そんなもん、自分でコンパイルすりゃ良いんじゃねーの? GUI無きゃないで、 「今時、言語側でdefaultでGUIぐらいつけろ。」 とか言う人出そうだし。 オメーン所の、パッケージ作成者に言うことだろうが。
913 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 16:50:45 ] デフォルトでついていても使わなきゃいいだけの話。 もしデフォルトで付いていればインストールの手間もなくなるし、 公式お墨付きということでヒューマンインターフェースが共通化されて利用者にとって便利になる。 どうしてもそれに不満があれば別のライブラリをインストールすればいいだけのことだし。 言語にGUIライブラリがくっついていたら何が不満なのかわからん。 容量にしてもインストール時間にしても対して違わない。 処理系を自前でコンパイルしてるやつは多少コンパイル時間が長くなるが、些細な問題だよな。
914 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 17:53:25 ] >>913 たとえば、SWI-Prologのインストールで入ったライブラリのために、 別の言語のインストールでエラーになるということはあるよ。
915 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 17:56:07 ] ディスク容量が限られてる環境なので、依存するライブラリをあれこれ 入れられるとうっとおしい、とか、サーバサイドアプリで、サーバには あれこれ入れたくないとか、パッケージ管理システムがバイナリベース じゃなくてゴリゴリコンパイルするのでやってられない、とか。 (パッケージのメンテナが)簡単に分離できるような構成にしておいて ほしい、という要望はありなんじゃないか?
916 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 18:10:00 ] つGentoo
917 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 18:20:41 ] >>911 MacPortsならパッケージ作成者がGUI無しのvariantsを用意すればいいだけの 話だよな。それが嫌だったらパッチ書いて送るしかないだろ。
918 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 18:21:16 ] >>915 > (パッケージのメンテナが)簡単に分離できるような構成にしておいて > ほしい、という要望はありなんじゃないか? それはアリだな
919 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 18:28:08 ] 似たような文句のある人っているんだね。 X関連をいろいろ入れろと要求するのは勘弁してほしいよね。 あくまで言語を入れたいんだからGUIはあくまでオプションにしていてほしい。 こっちはGnomeみたいなリッチなデスクトップじゃなくてまだtwmなんだよ。
920 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 19:12:50 ] >>919 twmって割と重くて使いにくいと思ってたんだがまだ使ってる人いたんだww みんなawesomeとかfluxboxとかに移行しちゃったと思ってた。
921 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 19:24:48 ] 基本的にUIに興味ないもんでいろいろ試すのが面倒で。 言語は片っ端から使ってみているのだけど。 # 言語もある意味UIの一種だというツッコミを受けそうだ :-)
922 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 19:39:25 ] コンピュータを何につかってんの? どうせ論文にもならないような研究ごっこやって妄想して遊んでるだけだろ。
923 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 21:38:30 ] たぶん>>921 さんみたいな人はWindows(メイン)ともう一台(実験用)みたいな構成だと予想。
924 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 21:44:55 ] まぁ2chよりでくだらない煽りを書いてるよりは有意義なことかと
925 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:25:07 ] >>922 俺は自宅で10台ぐらいのクラスタで論文にできる研究やってるよ
926 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:27:37 ] ただ並列化して測定しました、という類の論文は勘弁してくれ 査読するたびにうんざりする
927 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:35:02 ] >>925 InfiniBandか10GbEか分からんけど、電気代凄そうだな
928 名前:925 mailto:sage [2009/05/11(月) 22:44:36 ] >>926 そんなどこかの高校生じゃあるまいしw
929 名前:925 mailto:sage [2009/05/11(月) 22:48:01 ] >>926 頼まれたこともないくせにw
930 名前:925 mailto:sage [2009/05/11(月) 22:49:09 ] >>927 家庭用だぜ? 1GbEに決まってるだろ
931 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:58:29 ] これは推して知るべしだな
932 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:46:29 ] 10台ぽっちでクラスタって…
933 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:42:55 ] >>911 macports使ってるけど、Xがからまないと確かに気楽だなあ。 macportsだったら、swi-prolog-liteがおすすめ。
934 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:12:16 ] 関数型言語の話題になっていない件について。 ライブラリが豊富なのが魅力で最近やっとSML/NJからOCamlに移行したんだが、 SMLで書いたコードを書き換えるのが結構面倒。 文法的にもOCamlって面倒臭く感じるんだけど、単なる慣れの問題?
935 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:20:43 ] let fun や let val とか tuple には必ず括弧を書いていた癖に、 何が面倒なのかわからんが、camlp5 には pa_sml があるのでそれを使ってみ?
936 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:15:41 ] 再帰関数の定義がlet recだったり関数引数のパターンマッチングを let funcName = function ... | ... のように書くのが面倒に思えたんで。 確かにSMLにも冗長な部分はあるし、慣れだとは思うんだが。 何らかのトランスレータはあると思っていたのだが、camlp5なんて便利なものが あったとは。2000行程のSMLコードをうまく変換出来たよ。どうもありがとう。
937 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:50:17 ] >>932 どうでもいいけど、計算そのものの研究ならクラスタであれば台数は関係ないのでは?
938 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:03:34 ] >>936 ホントに変換できたんだ!知らずに教えといてすまんが、使ったことなかったんで。
939 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:45:46 ] >>938 camlp5 pa_sml.cmo pr_o.cmo -impl MyModule.sml で変換できた。printをprint_stringに置換する必要はあったけど。 まじで助かった。
940 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 17:41:59 ] それはよござんした
941 名前:デフォルトの名無しさん [2009/05/12(火) 23:47:13 ] 関数型言語って、常微分方程式の初期値問題の数値解を求めたりするのには向いてますか? 科学技術計算を中心にした関数型言語の入門書でなにかいいのありますか?
942 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 00:31:28 ] f# for scientists
943 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:36:30 ] >>925 なぜ自宅で? まともな研究じゃないな
944 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:37:24 ] 粘着乙
945 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:38:10 ] >>944 早ッ!!
946 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:39:01 ] >>942 Harrop の本なんか読むなよ、頼むから。
947 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:57:42 ] >>943 大学にいる人間じゃないから、そういう研究は自宅でしかできないんだよ。
948 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:16:09 ] >>946 その著者が書いた唯一の本のようだが。
949 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:52:58 ] >>947 計算機科学の研究は分野によってはPC1台でも十分に出来るのが良い所。 ぜひ成果を出して論文投稿してくれ。
950 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:56:19 ] 成果が出なくても rm するだけというのも良い所。
951 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 08:42:20 ] >>948 その著者が書いたSpamは山程ある。
952 名前:デフォルトの名無しさん [2009/05/14(木) 22:02:27 ] うまいこといいやがって
953 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:01:26 ] >>946 >>951 kwsk
954 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 09:43:34 ] john harrop troll でググレカス
955 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:26:16 ] John Harropってtrollすぎてワロタ
[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]
前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