[過去ログ] 関数型言語ML(SML, OCaml, etc.), Part 5 (986レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
887: デフォルトの名無しさん [sage] 2009/04/01(水)17:52
型に 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
>>879
コピペだけど
【手続き型】
吾輩は猫である。
名前はまだ無い。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。
【関数型】
人間というものを始めて見た薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶しているがどこで生まれたかとんと見当がつかず名前がまだ無い猫である吾輩。
889: デフォルトの名無しさん [sage] 2009/04/08(水)19:53
時間が経過すると…
【手続き型】
吾輩は猫である。
親ゆずりの無鉄砲で子供の頃から損ばかりしている。
「おい、地獄さ行ぐんだで!」
ウスウスと目を覚ました時、蜜蜂の唸るような音は、まだ、その弾力の深い余韻を、私の耳の穴の中にハッキリと引き残していた。
国境の長いトンネルを抜けると雪国であった。
名前はまだない。
890: デフォルトの名無しさん [sage] 2009/04/09(木)16:10
…………ブウウ懼懼懼懼懼懼ンンン懼懼懼懼懼懼ンンンン………………。
891: デフォルトの名無しさん [] 2009/04/09(木)19:16
CMの使い方を教えてください。
SML/NJで、use文のカスケードではロードが厳しくなってきたので、
CMに移行しようとしているのですが、以下の点で困っています。
(1) 対話型環境を使って計算したい。そのため、トップレベルに関数を
展開したいが、.cmにはトップレベル関数・値を書けない。
今のところ、open XXX; がならんだ .smlを作って、これをuseしている。
(2) 中置演算子の割り当てをトップレベルに置きたい
目的は、(1)と同じ。こちらは、実現方法が見つからない。
892(1): デフォルトの名無しさん [sage] 2009/04/26(日)17:14
float は boxing して扱われ、気合の入った最適化をしているわけでもないっぽい OCaml が
レイトレースのベンチマークで C++ と勝負できる位置にいるのはなんで?
893: デフォルトの名無しさん [sage] 2009/04/26(日)20:17
>>892
関数型言語は手続き型言語より最適化しやすいよ
関数型は中間表現で CPS 使ってる奴が多いから、 気合いが入って
なくても SSA 使ってる手続き型言語程度のコードは吐き出しそうな
気がする
fortran を除くと、手続き型言語のコンパイラの内部表現に SSA を
使うのが一般的になったのは、わりと最近じゃなかったっけ?
gcc だと 4 系列から SSA だっけか?
894: デフォルトの名無しさん [sage] 2009/04/26(日)20:46
とりあえずF#からいじり始めてる新参者なんですが、immutableなデータの取り扱い教えてくんなまし
immutableにするとMapReduceみたいにナイスに並列化も出来てクールだぜというのはわかったんですが、その結果とかで何処かにステートのチェンジが起きますよね?
Haskellのゲームかなんかでキャラの移動とかされた結果のそのシーンの状態を新しいWorldとして作っていくことでimmutableを維持してるとか言ってたんですが、業務アプリとかだと同なるんざんしょ。
別の記事か何かで、全体のデータ構造をobject-oriented西といて、その間の処理とかをfunctionalにするのが現実的だとかも言ってたんですが。
教えてエロイ人
895(1): デフォルトの名無しさん [] 2009/04/29(水)00:17
smlって実行結果が長いとき#で省略されちゃいますよね?あれを最後まで表示
させたいときって、どうすればいいんですか?printの引数はstring型でsring
にするにはInt.toString(a)などとすればできますが、intとchar型くらいしかできませんよね?
新しくつくった型には使えないのでどうすればよいかわからなくて・・・
誰か教えて下さい。
896: デフォルトの名無しさん [] 2009/04/29(水)07:05
別にデータをimmutableにするのにゲームも業務アプリも変わんないんじゃん
897: デフォルトの名無しさん [sage] 2009/04/29(水)09:25
データ毎回全部作り直すの?
898: デフォルトの名無しさん [] 2009/04/29(水)22:16
そうしてもいいけど、、、
普通は関数的なデータ構造では更新後と更新前が「ある程度共有される」。
たとえばリスト構造の先頭のほうを作り直す場合とかそうでしょ。
なおかつ共有されちゃっててもこまらないのはデータがimmutableだからこそだともいえる。
そしていろいろなデータ構造でimmutableでありながらも空間効率や時間効率のいいアルゴリズムが開発されてる。
Haskellのゲームかなんかで云々っていうのもデータを毎回全部作り直すという話じゃないと思うよ。
899(1): デフォルトの名無しさん [sage] 2009/05/01(金)20:03
「プログラミングの基礎」浅井健一という本は、
他の言語経験が無くOCamlがわからない人でもついていけますか?
900(1): デフォルトの名無しさん [] 2009/05/01(金)20:24
>>899 どのように考えながらプログラミングをしていくかが丁寧に書いてあるのでお勧めです。
もう少し高度な機能が知りたくなったら「プログラミング in OCaml」。
901: デフォルトの名無しさん [sage] 2009/05/02(土)01:25
>>895
ぱっと思いついたのは、print関数自作かSMLFormat使う
902: デフォルトの名無しさん [sage] 2009/05/09(土)19:04
質問です
ML系またはHaskell系言語でGUI開発に便利なRAD環境が充実している言語って何でしょうか?
できれば個人的なお勧め開発環境も教えていただければうれしいです。
903: デフォルトの名無しさん [sage] 2009/05/09(土)19:22
VBに匹敵するようなものはないなぁ
904: デフォルトの名無しさん [sage] 2009/05/09(土)19:37
F#でよくね?
905: デフォルトの名無しさん [sage] 2009/05/09(土)22:12
OCaml にありそうな気がす
906: デフォルトの名無しさん [sage] 2009/05/09(土)22:30
ここまでGUIプログラムを開発した人なし
907: デフォルトの名無しさん [sage] 2009/05/11(月)11:28
LablGtk の glade インターフェースを 5 年前に使ったけど、まあ、glade だったよ。
908(1): デフォルトの名無しさん [sage] 2009/05/11(月)14:22
GUIイラネ
909: デフォルトの名無しさん [sage] 2009/05/11(月)15:00
>>908
で?
910: デフォルトの名無しさん [sage] 2009/05/11(月)15:01
別にGUIイランやつはイランで結構だろ。
誰も強制なんかしてないんだし。
ここでそんなこと表明する意味がわからん。
911(2): デフォルトの名無しさん [sage] 2009/05/11(月)16:25
GUIイラネの人じゃないけど、言語処理系をパッケージシステムで
インストールするとき、最近はGUIツールキットまで一緒に入れようと
するのが結構あってうざいんだよね。幸いML関連でそういうのにあたった
ことはないけど、こないだMacPortsでSWI-PrologとErlangを入れたら
いろいろ勝手に入って来て大変だった。オプションでも外せないし。
将来lablgtkなんかを強制されるようになったらOCaml捨てたくなる。
こっちは今後もコマンドラインだけでひっそり生きていきたいんだから
ほっといてほしい。
912: デフォルトの名無しさん [sage] 2009/05/11(月)16:42
そんなもん、自分でコンパイルすりゃ良いんじゃねーの?
GUI無きゃないで、
「今時、言語側でdefaultでGUIぐらいつけろ。」
とか言う人出そうだし。
オメーン所の、パッケージ作成者に言うことだろうが。
913(1): デフォルトの名無しさん [sage] 2009/05/11(月)16:50
デフォルトでついていても使わなきゃいいだけの話。
もしデフォルトで付いていればインストールの手間もなくなるし、
公式お墨付きということでヒューマンインターフェースが共通化されて利用者にとって便利になる。
どうしてもそれに不満があれば別のライブラリをインストールすればいいだけのことだし。
言語にGUIライブラリがくっついていたら何が不満なのかわからん。
容量にしてもインストール時間にしても対して違わない。
処理系を自前でコンパイルしてるやつは多少コンパイル時間が長くなるが、些細な問題だよな。
914: デフォルトの名無しさん [sage] 2009/05/11(月)17:53
>>913
たとえば、SWI-Prologのインストールで入ったライブラリのために、
別の言語のインストールでエラーになるということはあるよ。
915(1): デフォルトの名無しさん [sage] 2009/05/11(月)17:56
ディスク容量が限られてる環境なので、依存するライブラリをあれこれ
入れられるとうっとおしい、とか、サーバサイドアプリで、サーバには
あれこれ入れたくないとか、パッケージ管理システムがバイナリベース
じゃなくてゴリゴリコンパイルするのでやってられない、とか。
(パッケージのメンテナが)簡単に分離できるような構成にしておいて
ほしい、という要望はありなんじゃないか?
916: デフォルトの名無しさん [sage] 2009/05/11(月)18:10
つGentoo
917: デフォルトの名無しさん [sage] 2009/05/11(月)18:20
>>911
MacPortsならパッケージ作成者がGUI無しのvariantsを用意すればいいだけの
話だよな。それが嫌だったらパッチ書いて送るしかないだろ。
918: デフォルトの名無しさん [sage] 2009/05/11(月)18:21
>>915
> (パッケージのメンテナが)簡単に分離できるような構成にしておいて
> ほしい、という要望はありなんじゃないか?
それはアリだな
919(1): デフォルトの名無しさん [sage] 2009/05/11(月)18:28
似たような文句のある人っているんだね。
X関連をいろいろ入れろと要求するのは勘弁してほしいよね。
あくまで言語を入れたいんだからGUIはあくまでオプションにしていてほしい。
こっちはGnomeみたいなリッチなデスクトップじゃなくてまだtwmなんだよ。
920: デフォルトの名無しさん [sage] 2009/05/11(月)19:12
>>919
twmって割と重くて使いにくいと思ってたんだがまだ使ってる人いたんだww
みんなawesomeとかfluxboxとかに移行しちゃったと思ってた。
921(1): デフォルトの名無しさん [sage] 2009/05/11(月)19:24
基本的にUIに興味ないもんでいろいろ試すのが面倒で。
言語は片っ端から使ってみているのだけど。
# 言語もある意味UIの一種だというツッコミを受けそうだ :-)
922(1): デフォルトの名無しさん [sage] 2009/05/11(月)19:39
コンピュータを何につかってんの?
どうせ論文にもならないような研究ごっこやって妄想して遊んでるだけだろ。
923: デフォルトの名無しさん [sage] 2009/05/11(月)21:38
たぶん>>921さんみたいな人はWindows(メイン)ともう一台(実験用)みたいな構成だと予想。
924: デフォルトの名無しさん [sage] 2009/05/11(月)21:44
まぁ2chよりでくだらない煽りを書いてるよりは有意義なことかと
925(5): デフォルトの名無しさん [sage] 2009/05/11(月)22:25
>>922
俺は自宅で10台ぐらいのクラスタで論文にできる研究やってるよ
926(2): デフォルトの名無しさん [sage] 2009/05/11(月)22:27
ただ並列化して測定しました、という類の論文は勘弁してくれ
査読するたびにうんざりする
927(1): デフォルトの名無しさん [sage] 2009/05/11(月)22:35
>>925
InfiniBandか10GbEか分からんけど、電気代凄そうだな
928: 925 [sage] 2009/05/11(月)22:44
>>926
そんなどこかの高校生じゃあるまいしw
929: 925 [sage] 2009/05/11(月)22:48
>>926
頼まれたこともないくせにw
930: 925 [sage] 2009/05/11(月)22:49
>>927
家庭用だぜ?
1GbEに決まってるだろ
931: デフォルトの名無しさん [sage] 2009/05/11(月)22:58
これは推して知るべしだな
932(1): デフォルトの名無しさん [sage] 2009/05/12(火)00:46
10台ぽっちでクラスタって…
933: デフォルトの名無しさん [sage] 2009/05/12(火)12:42
>>911
macports使ってるけど、Xがからまないと確かに気楽だなあ。
macportsだったら、swi-prolog-liteがおすすめ。
934: デフォルトの名無しさん [sage] 2009/05/12(火)13:12
関数型言語の話題になっていない件について。
ライブラリが豊富なのが魅力で最近やっとSML/NJからOCamlに移行したんだが、
SMLで書いたコードを書き換えるのが結構面倒。
文法的にもOCamlって面倒臭く感じるんだけど、単なる慣れの問題?
935: デフォルトの名無しさん [sage] 2009/05/12(火)13:20
let fun や let val とか tuple には必ず括弧を書いていた癖に、
何が面倒なのかわからんが、camlp5 には pa_sml があるのでそれを使ってみ?
936(1): デフォルトの名無しさん [sage] 2009/05/12(火)14:15
再帰関数の定義がlet recだったり関数引数のパターンマッチングを
let funcName = function ... | ... のように書くのが面倒に思えたんで。
確かにSMLにも冗長な部分はあるし、慣れだとは思うんだが。
何らかのトランスレータはあると思っていたのだが、camlp5なんて便利なものが
あったとは。2000行程のSMLコードをうまく変換出来たよ。どうもありがとう。
937: デフォルトの名無しさん [sage] 2009/05/12(火)14:50
>>932
どうでもいいけど、計算そのものの研究ならクラスタであれば台数は関係ないのでは?
938(1): デフォルトの名無しさん [sage] 2009/05/12(火)16:03
>>936
ホントに変換できたんだ!知らずに教えといてすまんが、使ったことなかったんで。
939: デフォルトの名無しさん [sage] 2009/05/12(火)16:45
>>938
camlp5 pa_sml.cmo pr_o.cmo -impl MyModule.sml
で変換できた。printをprint_stringに置換する必要はあったけど。
まじで助かった。
940: デフォルトの名無しさん [sage] 2009/05/12(火)17:41
それはよござんした
941: デフォルトの名無しさん [] 2009/05/12(火)23:47
関数型言語って、常微分方程式の初期値問題の数値解を求めたりするのには向いてますか?
科学技術計算を中心にした関数型言語の入門書でなにかいいのありますか?
942(1): デフォルトの名無しさん [sage] 2009/05/13(水)00:31
f# for scientists
943(1): デフォルトの名無しさん [sage] 2009/05/13(水)14:36
>>925
なぜ自宅で?
まともな研究じゃないな
944(1): デフォルトの名無しさん [sage] 2009/05/13(水)14:37
粘着乙
945: デフォルトの名無しさん [sage] 2009/05/13(水)14:38
>>944
早ッ!!
946(2): デフォルトの名無しさん [sage] 2009/05/13(水)14:39
>>942
Harrop の本なんか読むなよ、頼むから。
947(1): デフォルトの名無しさん [sage] 2009/05/13(水)14:57
>>943
大学にいる人間じゃないから、そういう研究は自宅でしかできないんだよ。
948(1): デフォルトの名無しさん [sage] 2009/05/13(水)22:16
>>946
その著者が書いた唯一の本のようだが。
949: デフォルトの名無しさん [sage] 2009/05/13(水)22:52
>>947
計算機科学の研究は分野によってはPC1台でも十分に出来るのが良い所。
ぜひ成果を出して論文投稿してくれ。
950: デフォルトの名無しさん [sage] 2009/05/13(水)22:56
成果が出なくても rm するだけというのも良い所。
951(1): デフォルトの名無しさん [sage] 2009/05/14(木)08:42
>>948
その著者が書いたSpamは山程ある。
952: デフォルトの名無しさん [] 2009/05/14(木)22:02
うまいこといいやがって
953: デフォルトの名無しさん [sage] 2009/05/17(日)19:01
>>946 >>951
kwsk
954: デフォルトの名無しさん [sage] 2009/05/21(木)09:43
john harrop troll でググレカス
955: デフォルトの名無しさん [sage] 2009/05/21(木)14:26
John Harropってtrollすぎてワロタ
956: デフォルトの名無しさん [sage] 2009/05/25(月)20:26
ググるとこのスレが3番目にくるぞw
957: デフォルトの名無しさん [sage] 2009/05/25(月)21:23
実際に本に書かれている内容はべつに変じゃなかったが
958(1): デフォルトの名無しさん [sage] 2009/05/25(月)22:56 AAS
AA省
959(1): デフォルトの名無しさん [sage] 2009/05/25(月)23:09
>>958
http://caml.inria.fr/pub/old_caml_site/Examples/oc/basics/explode.ml
960: デフォルトの名無しさん [sage] 2009/05/25(月)23:45
>>959
そのサイトにあったのか
ありがとうございます
961: デフォルトの名無しさん [sage] 2009/05/26(火)23:04
関数型C言語ってのがあるみたいですね。
962(1): デフォルトの名無しさん [sage] 2009/05/31(日)17:35
OCamlです
「ファイル名が名前になる自分自身」モジュールをファンクタに渡したいんですけどそれってできますか?
963: デフォルトの名無しさん [sage] 2009/06/01(月)09:11
>>962
日本語でおk
適当に解釈して答えると m.ml は非再帰なモジュール M を定義するのでその内部で自分自身 M を使うことは出来ん。
964: デフォルトの名無しさん [sage] 2009/06/01(月)20:36
>>900
買ってきました。なんだか自分でも読めそうな感じです。
965(1): デフォルトの名無しさん [sage] 2009/06/09(火)00:46
なんかこんなこと書いてる人いるけどどうなの?
http://www.shido.info/gb/guestbook.php?id=1985
@がどうのコメントがどうのってただのいちゃもんのような気もするんだが
966(1): デフォルトの名無しさん [sage] 2009/06/09(火)00:52
ルーク、スルー力を使え
967: デフォルトの名無しさん [sage] 2009/06/09(火)00:58
>>965
記号がキモイというのは自分も思ったよ。
確かに Haskell は見た目が奇麗だし OCaml は如何にも見栄えに気を使ってない感じがする。
それがイチャモンだと思う人も居れば最重要項目に挙げる人もいるから、人それぞれかと。
Python は奇麗、Perl は汚い
Scheme は奇麗、CL は汚い
SML は奇麗、OCaml は汚い
C は奇麗、C++ は汚い
Haskell は奇麗、Smalltalk も奇麗
でも汚い事をするには汚い言語の方が使い勝手が良かったりもするんだよね。
ちょっと脱線し過ぎた。↓なんかコード書いてくれ。
968: デフォルトの名無しさん [sage] 2009/06/09(火)02:39
>式の最後はセミコロン二個;;とか。
この辺だけ同意
どういうセンスなのか
969: デフォルトの名無しさん [sage] 2009/06/09(火)13:30
SMLから入ったからOCamlのシンタックスには戸惑ったな。
;;だけは未だに抵抗を感じる。ファイルに書くときはどうせ最後にしか書かないから
ほぼ関係ないが、toplevelを使うときにはやっぱり面倒くさい。
一体どんな経緯で;;になったの?
970(1): デフォルトの名無しさん [sage] 2009/06/09(火)17:48
>>966
ごめんオビワン、僕にはスルーできない!!
http://anond.hatelabo.jp/20090609174454
971: デフォルトの名無しさん [sage] 2009/06/09(火)19:29
>>970
何でネタという事にしたくなったのかは知らんけど、
もう少し時間差とか工夫しろよ
972: デフォルトの名無しさん [sage] 2009/06/09(火)19:36
↑済まん間違えた。一行目は忘れてくれ。
973: デフォルトの名無しさん [sage] 2009/06/09(火)19:50
二行目も忘れてくれ。
974: デフォルトの名無しさん [sage] 2009/06/09(火)23:38
三行目はどうすればいい?
975: デフォルトの名無しさん [sage] 2009/06/10(水)00:29
;;の前に移動してくれ
976: デフォルトの名無しさん [sage] 2009/06/10(水)23:59
(@u@ .:;)ノシ
977: デフォルトの名無しさん [sage] 2009/06/13(土)19:47
OCamlやったらSchemeって簡単?
978: デフォルトの名無しさん [sage] 2009/06/13(土)20:22
OCamlでパターンマッチに慣れてからschemeをやると
define-syntaxマクロが理解しやすいのは確か
しかし、継続は全然理解出来ん
979: デフォルトの名無しさん [sage] 2009/06/13(土)21:58
継続以外は大丈夫ってわけか。SICP読めるかな。
980: デフォルトの名無しさん [sage] 2009/06/14(日)02:16
パターンマッチング最高。今更無しの言語を使いたくない
981(2): デフォルトの名無しさん [sage] 2009/06/14(日)02:32
パターンマッチングって所詮ただのifじゃん
982: デフォルトの名無しさん [sage] 2009/06/14(日)02:46
・イラネ
・ただの○○じゃん
・無いよりはマシだな
・これって便利だね ←パターンマッチはここら辺にあると思う
・無いとやってらんねー
983: デフォルトの名無しさん [sage] 2009/06/14(日)02:57
>>981
それってORパターンにしか言えないんじゃん
let束縛でパターンマッチとかどう説明するよ
まあこういうのも語弊があるんだろうけど
むしろユニフィケーション的な文脈で語られるべき
機能なんじゃないかね、パターンマッチング
と、雑なことをいって識者の登場を期待するテスト
984: デフォルトの名無しさん [sage] 2009/06/14(日)03:04
おまいらまだ起きてるんだな
>>981
で、何が言いたいの?
985(1): デフォルトの名無しさん [sage] 2009/06/14(日)03:10
ただの便利なifだよ
986: デフォルトの名無しさん [sage] 2009/06/14(日)03:25
>>985
馬鹿?
パターンマッチングはif + let
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s