09/04/26 20:46:10
とりあえずF#からいじり始めてる新参者なんですが、immutableなデータの取り扱い教えてくんなまし
immutableにするとMapReduceみたいにナイスに並列化も出来てクールだぜというのはわかったんですが、その結果とかで何処かにステートのチェンジが起きますよね?
Haskellのゲームかなんかでキャラの移動とかされた結果のそのシーンの状態を新しいWorldとして作っていくことでimmutableを維持してるとか言ってたんですが、業務アプリとかだと同なるんざんしょ。
別の記事か何かで、全体のデータ構造をobject-oriented西といて、その間の処理とかをfunctionalにするのが現実的だとかも言ってたんですが。
教えてエロイ人
895:デフォルトの名無しさん
09/04/29 00:17:23
smlって実行結果が長いとき#で省略されちゃいますよね?あれを最後まで表示
させたいときって、どうすればいいんですか?printの引数はstring型でsring
にするにはInt.toString(a)などとすればできますが、intとchar型くらいしかできませんよね?
新しくつくった型には使えないのでどうすればよいかわからなくて・・・
誰か教えて下さい。
896:デフォルトの名無しさん
09/04/29 07:05:49
別にデータをimmutableにするのにゲームも業務アプリも変わんないんじゃん
897:デフォルトの名無しさん
09/04/29 09:25:16
データ毎回全部作り直すの?
898:デフォルトの名無しさん
09/04/29 22:16:45
そうしてもいいけど、、、
普通は関数的なデータ構造では更新後と更新前が「ある程度共有される」。
たとえばリスト構造の先頭のほうを作り直す場合とかそうでしょ。
なおかつ共有されちゃっててもこまらないのはデータがimmutableだからこそだともいえる。
そしていろいろなデータ構造でimmutableでありながらも空間効率や時間効率のいいアルゴリズムが開発されてる。
Haskellのゲームかなんかで云々っていうのもデータを毎回全部作り直すという話じゃないと思うよ。
899:デフォルトの名無しさん
09/05/01 20:03:46
「プログラミングの基礎」浅井健一という本は、
他の言語経験が無くOCamlがわからない人でもついていけますか?
900:デフォルトの名無しさん
09/05/01 20:24:05
>>899 どのように考えながらプログラミングをしていくかが丁寧に書いてあるのでお勧めです。
もう少し高度な機能が知りたくなったら「プログラミング in OCaml」。
901:デフォルトの名無しさん
09/05/02 01:25:00
>>895
ぱっと思いついたのは、print関数自作かSMLFormat使う
902:デフォルトの名無しさん
09/05/09 19:04:23
質問です
ML系またはHaskell系言語でGUI開発に便利なRAD環境が充実している言語って何でしょうか?
できれば個人的なお勧め開発環境も教えていただければうれしいです。
903:デフォルトの名無しさん
09/05/09 19:22:56
VBに匹敵するようなものはないなぁ
904:デフォルトの名無しさん
09/05/09 19:37:35
F#でよくね?
905:デフォルトの名無しさん
09/05/09 22:12:06
OCaml にありそうな気がす
906:デフォルトの名無しさん
09/05/09 22:30:47
ここまでGUIプログラムを開発した人なし
907:デフォルトの名無しさん
09/05/11 11:28:08
LablGtk の glade インターフェースを 5 年前に使ったけど、まあ、glade だったよ。
908:デフォルトの名無しさん
09/05/11 14:22:49
GUIイラネ
909:デフォルトの名無しさん
09/05/11 15:00:29
>>908
で?
910:デフォルトの名無しさん
09/05/11 15:01:42
別にGUIイランやつはイランで結構だろ。
誰も強制なんかしてないんだし。
ここでそんなこと表明する意味がわからん。
911:デフォルトの名無しさん
09/05/11 16:25:14
GUIイラネの人じゃないけど、言語処理系をパッケージシステムで
インストールするとき、最近はGUIツールキットまで一緒に入れようと
するのが結構あってうざいんだよね。幸いML関連でそういうのにあたった
ことはないけど、こないだMacPortsでSWI-PrologとErlangを入れたら
いろいろ勝手に入って来て大変だった。オプションでも外せないし。
将来lablgtkなんかを強制されるようになったらOCaml捨てたくなる。
こっちは今後もコマンドラインだけでひっそり生きていきたいんだから
ほっといてほしい。
912:デフォルトの名無しさん
09/05/11 16:42:41
そんなもん、自分でコンパイルすりゃ良いんじゃねーの?
GUI無きゃないで、
「今時、言語側でdefaultでGUIぐらいつけろ。」
とか言う人出そうだし。
オメーン所の、パッケージ作成者に言うことだろうが。
913:デフォルトの名無しさん
09/05/11 16:50:45
デフォルトでついていても使わなきゃいいだけの話。
もしデフォルトで付いていればインストールの手間もなくなるし、
公式お墨付きということでヒューマンインターフェースが共通化されて利用者にとって便利になる。
どうしてもそれに不満があれば別のライブラリをインストールすればいいだけのことだし。
言語にGUIライブラリがくっついていたら何が不満なのかわからん。
容量にしてもインストール時間にしても対して違わない。
処理系を自前でコンパイルしてるやつは多少コンパイル時間が長くなるが、些細な問題だよな。
914:デフォルトの名無しさん
09/05/11 17:53:25
>>913
たとえば、SWI-Prologのインストールで入ったライブラリのために、
別の言語のインストールでエラーになるということはあるよ。
915:デフォルトの名無しさん
09/05/11 17:56:07
ディスク容量が限られてる環境なので、依存するライブラリをあれこれ
入れられるとうっとおしい、とか、サーバサイドアプリで、サーバには
あれこれ入れたくないとか、パッケージ管理システムがバイナリベース
じゃなくてゴリゴリコンパイルするのでやってられない、とか。
(パッケージのメンテナが)簡単に分離できるような構成にしておいて
ほしい、という要望はありなんじゃないか?
916:デフォルトの名無しさん
09/05/11 18:10:00
つGentoo
917:デフォルトの名無しさん
09/05/11 18:20:41
>>911
MacPortsならパッケージ作成者がGUI無しのvariantsを用意すればいいだけの
話だよな。それが嫌だったらパッチ書いて送るしかないだろ。
918:デフォルトの名無しさん
09/05/11 18:21:16
>>915
> (パッケージのメンテナが)簡単に分離できるような構成にしておいて
> ほしい、という要望はありなんじゃないか?
それはアリだな
919:デフォルトの名無しさん
09/05/11 18:28:08
似たような文句のある人っているんだね。
X関連をいろいろ入れろと要求するのは勘弁してほしいよね。
あくまで言語を入れたいんだからGUIはあくまでオプションにしていてほしい。
こっちはGnomeみたいなリッチなデスクトップじゃなくてまだtwmなんだよ。
920:デフォルトの名無しさん
09/05/11 19:12:50
>>919
twmって割と重くて使いにくいと思ってたんだがまだ使ってる人いたんだww
みんなawesomeとかfluxboxとかに移行しちゃったと思ってた。
921:デフォルトの名無しさん
09/05/11 19:24:48
基本的にUIに興味ないもんでいろいろ試すのが面倒で。
言語は片っ端から使ってみているのだけど。
# 言語もある意味UIの一種だというツッコミを受けそうだ :-)
922:デフォルトの名無しさん
09/05/11 19:39:25
コンピュータを何につかってんの?
どうせ論文にもならないような研究ごっこやって妄想して遊んでるだけだろ。
923:デフォルトの名無しさん
09/05/11 21:38:30
たぶん>>921さんみたいな人はWindows(メイン)ともう一台(実験用)みたいな構成だと予想。
924:デフォルトの名無しさん
09/05/11 21:44:55
まぁ2chよりでくだらない煽りを書いてるよりは有意義なことかと
925:デフォルトの名無しさん
09/05/11 22:25:07
>>922
俺は自宅で10台ぐらいのクラスタで論文にできる研究やってるよ
926:デフォルトの名無しさん
09/05/11 22:27:37
ただ並列化して測定しました、という類の論文は勘弁してくれ
査読するたびにうんざりする
927:デフォルトの名無しさん
09/05/11 22:35:02
>>925
InfiniBandか10GbEか分からんけど、電気代凄そうだな
928:925
09/05/11 22:44:36
>>926
そんなどこかの高校生じゃあるまいしw
929:925
09/05/11 22:48:01
>>926
頼まれたこともないくせにw
930:925
09/05/11 22:49:09
>>927
家庭用だぜ?
1GbEに決まってるだろ
931:デフォルトの名無しさん
09/05/11 22:58:29
これは推して知るべしだな
932:デフォルトの名無しさん
09/05/12 00:46:29
10台ぽっちでクラスタって…
933:デフォルトの名無しさん
09/05/12 12:42:55
>>911
macports使ってるけど、Xがからまないと確かに気楽だなあ。
macportsだったら、swi-prolog-liteがおすすめ。
934:デフォルトの名無しさん
09/05/12 13:12:16
関数型言語の話題になっていない件について。
ライブラリが豊富なのが魅力で最近やっとSML/NJからOCamlに移行したんだが、
SMLで書いたコードを書き換えるのが結構面倒。
文法的にもOCamlって面倒臭く感じるんだけど、単なる慣れの問題?
935:デフォルトの名無しさん
09/05/12 13:20:43
let fun や let val とか tuple には必ず括弧を書いていた癖に、
何が面倒なのかわからんが、camlp5 には pa_sml があるのでそれを使ってみ?
936:デフォルトの名無しさん
09/05/12 14:15:41
再帰関数の定義がlet recだったり関数引数のパターンマッチングを
let funcName = function ... | ... のように書くのが面倒に思えたんで。
確かにSMLにも冗長な部分はあるし、慣れだとは思うんだが。
何らかのトランスレータはあると思っていたのだが、camlp5なんて便利なものが
あったとは。2000行程のSMLコードをうまく変換出来たよ。どうもありがとう。
937:デフォルトの名無しさん
09/05/12 14:50:17
>>932
どうでもいいけど、計算そのものの研究ならクラスタであれば台数は関係ないのでは?
938:デフォルトの名無しさん
09/05/12 16:03:34
>>936
ホントに変換できたんだ!知らずに教えといてすまんが、使ったことなかったんで。
939:デフォルトの名無しさん
09/05/12 16:45:46
>>938
camlp5 pa_sml.cmo pr_o.cmo -impl MyModule.sml
で変換できた。printをprint_stringに置換する必要はあったけど。
まじで助かった。
940:デフォルトの名無しさん
09/05/12 17:41:59
それはよござんした
941:デフォルトの名無しさん
09/05/12 23:47:13
関数型言語って、常微分方程式の初期値問題の数値解を求めたりするのには向いてますか?
科学技術計算を中心にした関数型言語の入門書でなにかいいのありますか?
942:デフォルトの名無しさん
09/05/13 00:31:28
f# for scientists
943:デフォルトの名無しさん
09/05/13 14:36:30
>>925
なぜ自宅で?
まともな研究じゃないな
944:デフォルトの名無しさん
09/05/13 14:37:24
粘着乙
945:デフォルトの名無しさん
09/05/13 14:38:10
>>944
早ッ!!
946:デフォルトの名無しさん
09/05/13 14:39:01
>>942
Harrop の本なんか読むなよ、頼むから。
947:デフォルトの名無しさん
09/05/13 14:57:42
>>943
大学にいる人間じゃないから、そういう研究は自宅でしかできないんだよ。
948:デフォルトの名無しさん
09/05/13 22:16:09
>>946
その著者が書いた唯一の本のようだが。
949:デフォルトの名無しさん
09/05/13 22:52:58
>>947
計算機科学の研究は分野によってはPC1台でも十分に出来るのが良い所。
ぜひ成果を出して論文投稿してくれ。
950:デフォルトの名無しさん
09/05/13 22:56:19
成果が出なくても rm するだけというのも良い所。
951:デフォルトの名無しさん
09/05/14 08:42:20
>>948
その著者が書いたSpamは山程ある。
952:デフォルトの名無しさん
09/05/14 22:02:27
うまいこといいやがって
953:デフォルトの名無しさん
09/05/17 19:01:26
>>946 >>951
kwsk
954:デフォルトの名無しさん
09/05/21 09:43:34
john harrop troll でググレカス
955:デフォルトの名無しさん
09/05/21 14:26:16
John Harropってtrollすぎてワロタ