[表示 : 全て 最新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/

855 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 07:22:46 ]
コンパイラはocaml3.11+ocamlspotter patch.
デバッグは主にextlibのdumpで画面表示. 超絶困ったときにはocamldebug.
エディタはemacs. IDEはいまのところ使ってない.
全体をコンパイルする前に大きく編集したファイルは-iオプションで個別に型をチェック.
-annotオプションは殆ど常に付けていて、謎な動きで困ったときには型とかも参考にしながら動作を追う.
上で抑えられているはずの(match文とかの)ありえない遷移にはassertとかも付けている. ヒットしたことないが.

856 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:52:48 ]
>>855 と殆ど同じ

> ・開発用と検証用のPCを分けたり、
> ・開発用・検証用PC間のデータ共有にLANを使ったり、
> ・通信にRS232Cを使ったり、

これは OCaml と何の関係もないと思うが。必要な人はそうするだけの話でしょう。

> ・コンパイルするまえに検証したりするかどうかとか、

質問の意図がよくわかりません。
コンパイラに通す、という事以上に意味のある検証を、
コンパイラに通す前にできるとは思えませんが。

通した後にモデルチェッカとか定理証明器でさらに検証する、
というのなら判りますが、実際やっている所を聞いたことがありません。
あれば是非話を伺いたいです。

> ・バグが見つかったときの対処方法など、

printf debug は馬鹿にできない。
assert して backtrace とかかな?
最悪 ocamldebug。gdb は意外といける。


857 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 11:37:12 ]
>>852
>>853

質問の対象が広すぎて良い答が得られるとは思えません。

- なぜこういう質問をしたくなったのか (会社で OCaml を導入しようとしているとか)、
- 現在こういう手順で他言語で開発を行っている、OCaml を使っても同じようにできるか知りたい

とか、背景説明していただかないと、答える側としても的を得た答を出しにくいです。


858 名前:852 mailto:sage [2009/02/08(日) 12:09:49 ]
>>857
明確な答えは求めておりません。
質問というよりは
「オレはこういうやり方で開発やってるぜ」
という話が聞けたらなぁという感じですね。

どちらかというとブレインストーミングに近いかも。

859 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:44:49 ]
じっとソースコードを眺めて、ここでこうなっているはずなのに
こんなことになっている、ということはその原因の候補は……
と考えるだけでもわりととれるもんだよ、バグ。

860 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:57:18 ]
・コンパイラにはocaml 3.10
・デバッグのはprint
・エディタにはEmacs + caml-mode
・IDEは使わない
・コンパイルするまえに検証 <- ??? そんなことできるの?
・バグが見つかったときの対処方法 printデバッグ

861 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:50:04 ]
ホーア論理を御忘れか?

862 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:29:52 ]
MLのHoare論理はまだ研究段階

863 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:35:13 ]
completeである必要はないんじゃないの? > 人間のやる検証



864 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:51:49 ]
コンパイルの前に検証って、エディタがtypoや型エラーを指摘してくれるとかそういうのじゃないの?

865 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:42:47 ]
ちょ MLで Hoare論理ってwww バカスwwww

866 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:34:14 ]
>>864
それは深読みすぎ


867 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:43:11 ]
>>864 型エラーとかシンタクスとかはコンパイルでチェックしてくれるから
それでよくね?セーブしてコンパイル の時間がそんなに惜しい?一瞬でしょ

868 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:08:11 ]
OMake -pの事でしょ?
-p
Watch the filesystem for changes, and continue the build until it succeeds. If this option is specified, omake will restart the build whenever source files are modified. Implies -k.
このレスポンスを一度体験すると割とはまる。

869 名前:  mailto:sage [2009/02/24(火) 10:58:46 ]
Ocaml初心者です。

let ( ) = print_string "Hello World\n"

ってのは何を意味するのですか? let の後には関数名とか変数名とかじゃないのですか?
let ( ) = ってのがわかりません。
教えてください。

870 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 12:04:36 ]
let には二通りある:
let f x y z = 式 (省略)
let パターン = 式

パターンは、簡単に言えば、変数を含んだ値のようなもの。
右辺の式を評価後、パターンに対してパターンマッチを行い、
パターン内に変数があれば、変数部分に該当する値を束縛する:

let x = 1 (* x = 1 *)
let (x,y) = 1, 2 (* x = 1, y = 2 *)
type t = { label : int; foo : float }
let { label = x } = { label = 2; foo = 3.0 } (* x = 2 *)
let x::xs = 1 :: [] (* x = 1, xs = [] *)

変数がなければ束縛は起こらない。
let true = 3 > 2 (* no binding *)

パターンの定数と、右辺の結果に齟齬があるばあい、パターンマッチは失敗する:
let (false, true) = 3 > 2, 2 > 0 (* match failure *)

let () = print_string "..."

最後の式は右辺の結果を () にパターンマッチさせているが、() の型 unit には
() しか値がないから、マッチは必ず成功する。なので、コンパイラはわざわざこの
マッチを行うようなコードは生成しない。結果、この式は、右辺を実行するだけ。


871 名前: mailto:sage [2009/02/24(火) 15:51:06 ]
>>870
Ocamlにパターンマッチがあるのは知ってましたが、これがそうだとは気づきませんでした。
詳しくありがとうございました。

872 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:37:03 ]
let main = print_string "Hello, world!\n"
とかの方がわかりやすいと思うけどなあ。俺はこっち(let main = ...)を使っている。
let () = ... ってなんでこうするんだろ。何かメリットあるのかな?

何にせよ右側の式が評価されることにはかわらないからどっちでもよいとは思うが。

873 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:46:51 ]
>>872
だって、将来使わないものをわざわざ定義したら、後で読み返したときややこしくなるじゃん。



874 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:34:47 ]
オブジェクト指向言語の良い所は変数やメソッドの名前が分かり易い事だと思うんだけど、
関数型言語の良い所は名前をイチイチ考えなくて良い事だよね。

875 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:44:44 ]
いやちゃんと考えろよ…意味を表す名前を

876 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:02:32 ]
いや本当に必要な時は考えてるよ…関数型言語だとそれが少ないだけで

877 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:06:58 ]
関数型言語ML 最終話 「なまえをよんで」

878 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:30:13 ]
>>873
名前を付けたくないなら、普通 let _ = ... じゃね?


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