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/
865 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 03:51:33.29 ID:RMSyflwZ.net] Luaは、ブラジル、リオデジャネイロの大学の研究グループから LuaJIT作ってるのはドイツ、ミュンヘンの人
866 名前:デフォルトの名無しさん mailto:sage [2014/06/01(日) 17:00:19.03 ID:3NiYSkpU.net] TAPLのexercise 3.2.5が分からん。なんで3.2.3の定義で S_i ⊆ S_{i+1} になるんだ? 各S_iは最初のS_1とかを除いて、disjointになるように思える。 本持ってる人教えて
867 名前:デフォルトの名無しさん mailto:sage [2014/06/01(日) 20:16:49.72 ID:dwNATPFa.net] https://bitbucket.org/camlspotter/ocaml-zippy-tutorial-in-japanese/src/434b26af16405ba8aaae0d89ba12bd2275eac9d3/4.02.md?at=default
868 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 23:28:07.14 ID:g6XVfS4Z.net] ocamlの演算子、**より~-.の方が優先順位が高いのはなぜ?
869 名前:デフォルトの名無しさん mailto:sage [2014/06/22(日) 23:27:34.81 ID:kfNNTRTT.net] 単項だからでは
870 名前:デフォルトの名無しさん [2014/07/05(土) 07:26:50.37 ID:uomUGxMD.net] OCamlの日本語の文字列扱うのて 上手く行かないものですか?
871 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 09:24:52.78 ID:Z/VI2an6.net] どの程度のレベルで上手くやろうとしているのか分からないけど、単純にstring型に代入、表示は何も無しでも動作するが、Stringモジュールは多言語に対応しているわけではない。String.lengthなどは狙い通りには動かない。 ライブラリ(Batteries, Camomile)等を使えば日本語できる。 と思ってBatUTF8を弄ってみたが、containsとかiterとかでBatUChar.tを取り扱う必要があるくせに、 BatUChar.t型を作る方法が面倒だなあ。of_digitしか無い。BatUTF8.get "あ" 0で誤魔化せるが、迂遠。
872 名前:デフォルトの名無しさん [2014/08/28(木) 00:17:52.33 ID:KKzfTscW.net] SML/NJ version 110.77 リリース! バージョン番号を4.0にリセットする前に、数回のリリースがあって、その中に64bitサポート が含まれるらしいが、今回はbugfixのマイナー・リリースらしい。 外部関数の32bitコンパイルがそろそろサポートされなくなりつつあるので、64bitサポートが はやくリリースされてほしい。
873 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 00:31:14.45 ID:3eVJnuNA.net] まだやってるんだな NJ
874 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 22:23:43.51 ID:fRdOqM0/.net] camomileの使い方が全然わからないんですがどこを読めばいいんでしょうか 主に文字コード変換と正規表現について知りたいです
875 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 22:52:22.51 ID:LjCjaXt3.net] いつの間にかOCaml4.02.0
876 名前:デフォルトの名無しさん [2014/08/30(土) 19:35:20.64 ID:8G53+yskN] age
877 名前:デフォルトの名無しさん [2014/08/30(土) 23:41:43.96 ID://K1VbLN.net] test
878 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 08:32:32.40 ID:3nEDqgz+.net] OCamlのマニュアルにocamlbrowserがまだあるのはバグっすな ocamldoc/trunk/manual/cmds/Makefile line#2 remove "browser.tex "
879 名前:デフォルトの名無しさん [2014/09/02(火) 22:57:08.51 ID:h4iRRc1G.net] ocaml標準のlexでは日本語が扱えないのでulexに差し替えたらparserが死んだでござる。 ダメだこりゃ
880 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 16:34:15.58 ID:smkPtKEd.net] >>868 ttps://github.com/darioteixeira/ccss/blob/master/src/ccss.ml#L25 menhirとulexを一緒に使う方法。
881 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 22:11:44.77 ID:ChDiOOXp.net] ocaml 4.01.0で # Obj.size @@ Obj.repr 1 がバグるんだけど、理由わかる?
882 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 23:08:38.11 ID:wtmzOZEz.net] 仕様です。 ソースはおろかドキュメントすら読まずにObjを使うとはアホの極みです。 Chapter "Interfacing C with OCaml", Section 2..3
883 名前:デフォルトの名無しさん mailto:age [2014/09/26(金) 02:16:11.74 ID:63HfXufw.net] OCamlのすごさはもっと知られるべき #オブジェクト指向 や #関数型 は「敗者の道具」である itpro.nikkeibp.co.jp/atcl/watcher/14/334361/092200062/?ST=develop&P=3
884 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 11:58:16.90 ID:p4JSIuT/.net] >>872 これタイトルで損してる記事だろ
885 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 11:59:36.06 ID:LJo7FzMV.net] みかかデータ、マンセー記事っぽかったけど
886 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 12:42:39.46 ID:/S6uCtFc.net] 関数型とかマルチパラ代務とかドカタには無理。オブジェクトだって散々語られてようやく、いや未だ、か 一部の突出した集団以外は、ほかにどうしようもない人が沈殿する職業になってるイメージ
887 名前:デフォルトの名無しさん [2014/09/26(金) 20:12:51.02 ID:+dkMIegW.net] do構文の使用禁止の規約って全部>>=で書くってことなのだろうか。理由も含めて気になる。
888 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 20:54:07.13 ID:mU/FSdzC.net] >>872 前半で散々オブジェクト指向をこきおろしておきながら、 中盤でOCamlを推すという意味不明な文章の論理の展開がある ML族を推すのなら Caml か SML にしないと一貫性が無いし、 Caml にオブジェクト指向を後付けした "O"Caml 開発時の判断は 今となっては流行に踊らされた大きな失敗であったと断罪すべき おまけに「個人的にOCamlがすごいと思う」とあるから何かと読んでみたら、 単なるパラメタ型多相の話でしかないことに笑ってしまった 「とがった」とか「すごい」とか、小学生の感想文とレベルは変わらない こんなポエム記事で給料をもらえるのだから、日経ITproの記者とは楽な職業だね >>873 タイトル以前の問題で、記事に中身が無くて話にならん >>876 ソースコード解析ツールなら言語処理系と似た構造になるから、 (一般的には副作用を模倣するために使われる)do記法を使う必要性は無いと思われ
889 名前:デフォルトの名無しさん [2014/09/26(金) 21:11:21.88 ID:+dkMIegW.net] ちょっとぐぐってみたらこういうページがあった。 www.haskell.org/haskellwiki/Do_notation_considered_harmful
890 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 21:24:18.32 ID:rzI+KhbO.net] たしかにタイトルで損したみたいだな
891 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 09:02:30.03 ID:aRJ76A2x.net] ああいう煽り記事読んでドキドキするのは思春期の子供だけ もっと大人向けの真面目に面白い記事は無いのか?
892 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 09:08:36.15 ID:V9AoMXji.net] もし完全無欠のプログラマが存在するのであれば、そうした方法論に頼らなくても、 完全に意図通りに動作するプログラムを頭から書き下していけばいいのです。 オブジェクト指向プログラミングや関数型プログラミングは、不完全な人間のために用意されたもの、 いわば「敗者の道具」といえます。 もちろん、これは極端すぎる表現です。例えば、人は空を飛べないので飛行機に乗ります。 このことをもって「飛行機は敗者の道具である」と言う人はいません。 そうした意味では、オブジェクト指向プログラミングや関数型プログラミングを敗者の道具と呼ぶのは、 単なる言葉遊びにすぎません。人間が全知全能でないのは当たり前ですから。 完全に朝日脳だな
893 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 17:11:59.10 ID:lJpImKEe.net] 産経信者も一緒に死ねカス
894 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 11:09:58.25 ID:yTX/1oq/.net] 今回朝日がしでかしたことを誰かまとめてくれ
895 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 12:21:46.09 ID:MFWVwvB9.net] スレ違いカスはお引き取り下さい
896 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 12:22:16.97 ID:/z7vQ2zP.net] >>883 どいたかこ死亡
897 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 12:38:21.08 ID:3fm9b2hk.net] 土井たか子がリアルに退いた過去になったのか
898 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 12:39:24.70 ID:/z7vQ2zP.net] 土井がどいた過去
899 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 12:40:25.54 ID:/z7vQ2zP.net] おんたけさんが噴火して おたけさんが逝った
900 名前:デフォルトの名無しさん mailto:sage [2014/10/07(火) 01:19:25.02 ID:RDe60glL.net] 対話環境を再起動せずに、リコンパイルしたライブラリをロードし直す方法ってありますか? #load でもう一度ロードすると、シグニチャが異なると怒られてしまいます
901 名前:デフォルトの名無しさん mailto:sage [2014/11/07(金) 22:47:28.24 ID:jjvVlXlA.net] OCamlで型クラスを実現する方法ある? あとカインドも
902 名前:デフォルトの名無しさん mailto:sage [2014/12/28(日) 01:38:33.30 ID:t9XFY33G.net] モジュールで型クラス的なものを作ることができる。便利とは言いがたいが
903 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 08:14:28.48 ID:0RN82SQI.net] Haskell より OCaml の方が部分部分で好みなんだけど、 OCaml は最近何か進展とか発展とか無いのかな。
904 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 13:15:20.83 ID:tkrhoEGU.net] 4.0出たばっかじゃなかったっけ
905 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 14:50:21.24 ID:j+EW35P1.net] 岡村はソース醜いのがなあ
906 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 19:17:09.87 ID:Omd6cUWA.net] >>894 たとえば?
907 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 20:40:25.53 ID:SFYHhnYx.net] 上から読んでいけば何しているのか分かるOCamlのソースは読みやすい部類 batteriesとかcoreといった大きいライブラリでも、モジュールと同名のファイル見ればいいだけなので、 どこに何があるのか探しやすい 基本的に手続き脳なので、haskellはどこから読めばいいのか分からない 悪名高いimport文のおかげでもっと読めない
908 名前:デフォルトの名無しさん [2015/02/05(木) 21:27:52.95 ID:uGoWQo5h.net] OCamlなんとなくソースの見た目のバランスが悪いっていうのはなんかわかるわ。
909 名前:894 mailto:sage [2015/02/06(金) 00:00:17.76 ID:mrZTa4bi.net] >>897 まさにそんなとこ。ぱっと見よくない
910 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 11:46:04.54 ID:qvKWViHE.net] ソースが読みにくい言語は致命的に生産&保守効率が悪い。
911 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 11:56:15.06 ID:uqQOSJHn.net] >>898 ? SMLならいいの?
912 名前:デフォルトの名無しさん [2015/02/19(木) 21:32:44.77 ID:VWBqr6Q7.net] レコード型ある言語、多相レコードある言語、フィールドがファーストクラスにできる言語 おしえて。 ぜんぶもってるのがいい。
913 名前:デフォルトの名無しさん mailto:sage [2015/02/19(木) 22:31:13.58 ID:/rXoqLFu.net] >>901 SML# という Standard ML の処理系は「ぜんぶもってる」よ # fun get_x {X = x, ...} = x; val get_x = fn : ['a#{X: 'b}, 'b. 'a -> 'b] # val point_2d = {X=1.0, Y=2.0}; val point_2d = {X = 1, Y = 2} : {X: real, Y: real} # val point_3d = {X=10.0, Y=20.0, Z=15.0}; val point_3d = {X = 10, Y = 20, Z = 15} : {X: real, Y: real, Z: real} # get_x point_2d; val it = 1 : real # get_x point_3d; val it = 10 : real Standard ML の場合、前2つは言語仕様で規定されているからすべての処理系で利用できるけど、 最後の「フィールドがファーストクラス」であることは仕様では要求されていない たとえば SML/NJ という処理系だと、上記のコードはエラーになる - fun get_x {X = x, ...} = x; stdIn:1.2-1.28 Error: unresolved flex record (can't tell what fields there are besides #X) SML# が独自に拡張したレコード型に関しては、SML# プロジェクトのホームページに 日本語の解説があるから、まず最初に読んでみるのがいいと思う ・SML#の拡張機能:レコード多相性 in プログラミング言語SML#解説 www.pllab.riec.tohoku.ac.jp/smlsharp/docs/2.0/ja/Ch7.xhtml
914 名前:デフォルトの名無しさん [2015/02/19(木) 22:34:08.05 ID:VWBqr6Q7.net] ↑ありがと。 ほんとにぜんぶ!? フィールドファーストクラスなのその言語?
915 名前:デフォルトの名無しさん [2015/02/19(木) 22:35:11.19 ID:VWBqr6Q7.net] あ、かいてあった、ごめん。
916 名前:デフォルトの名無しさん [2015/02/19(木) 22:37:49.31 ID:VWBqr6Q7.net] SML/NJってやつは、フィールドがファーストじゃないとして、 SML#ってやつはファーストなの? ほかにも>>900 全部持ってる言語とかあればおしえて。みんな。
917 名前:デフォルトの名無しさん [2015/02/20(金) 03:39:21.83 ID:V63A/fo0.net] 1.レコード型、あるいは、それに類する型を持つ 2.レコード型(or それに類する型)の構造的部分型関係を扱える 3.できれば、多相レコード型とかそれと同様なのを持つ 4.できれば、レコードのフィールド名がファーストクラス ( x = [name = 3] : [name : int] なら nameがファーストクラス) これカバーできる言語ない? うえでおしえてもらったのしらべてみたけど SML/NJってのは1,2を満たしてそう SML#ってのが1,2,3を満たしてそう、 あと scalaが無名オブジェクトみたいなやつで1,2,3を満たしてそう? 型を一部か書かないとダメだけど ほかにこの辺でなんかいい言語ない? clojure? ってのが4みたして相だけどコンパイル時に型ちぇっくしてくれないよねそれ? うーんなんかない?
918 名前:デフォルトの名無しさん [2015/02/20(金) 09:34:49.39 ID:vrO8Sxqb.net] 1
919 名前:デフォルトの名無しさん mailto:sage [2015/02/20(金) 10:31:17.89 ID:N6pKHonh.net] じゃあ俺は2
920 名前:デフォルトの名無しさん mailto:sage [2015/02/20(金) 10:55:47.88 ID:sOgXDRpH.net] 宿題は自力でやれw
921 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 00:55:59.35 ID:KgB/c0aN.net] >>906 Standard ML のレコード型は構造的部分型関係を持たないよ 構造的部分型関係を持つレコード型に類する型を持つのは OCaml や Java いわゆるオブジェクト指向におけるクラスとそれらの間の継承関係のこと また「多相レコード型」という用語の意味が「パラメタ型多相なレコード型」 であるならば、Standard ML は多相レコード型を持つことになる ここでパラメタ型多相は、Java だとジェネリクス(総称型)と呼ばれている 結論として、Standard ML(とその処理系 SML/NL および SML#)は1と3を満たす 次にファーストクラスについて、>>902 のコードにおける関数 get_x の定義だけど、 「フィールドとはレコード値からフィールド値への写像(関数)である」 という関係に気付けば、その定義は以下のように簡潔になる # val get_x = #X; val get_x = fn : ['a#{X: 'b}, 'b. 'a -> 'b] (* SML/# *) つまりフィールド #X は(val宣言で)識別子に束縛したり、他の関数へ適用したり。 ある関数の評価結果として返すことができる こうした数値や文字列といった値と同等に扱える性質を指してファーストクラスと呼ぶ さらに上記の例は SML# だけど、SML/NJ も型システムが単純たから型推論に失敗するだけで、 データ型を明示的に宣言すれば関数 get_x を定義できる - val get_x = #X : {X: real, Y: 'a} -> real; val get_x = fn : {X:real, Y:'a} -> real (* SML/NJ *) 型システムの制約とファーストクラスという性質をごっちゃにすべきではない まとめると、Standard ML(とそのすべての処理系)のフィールドはファーストクラスである
922 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 01:03:27.14 ID:KaIHMFIz.net] > - val get_x = #X : {X: real, Y: 'a} -> real; でもこの get_x って、>>902 の point_3d には使えないよね。
923 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 01:45:43.43 ID:KgB/c0aN.net] うん、使えない それが >>910 で書いた(Standard ML言語仕様における)「型システム」の制約だね その制約を無くした SML# が特異なだけで、SML/NJ 以外の大半の SML 処理系に同じ制約がある
924 名前:デフォルトの名無しさん [2015/02/21(土) 06:39:28.04 ID:QYKbOsyjA] SML#はstructual subtype関係 もつんじゃないの?↑のリンク先見る限りさ {l1:a, l2:b} < {l1:a} みたいに扱われないの? javaの部分型関係は明示的にクラス名に順序関係付けただけのものだけじゃないの? フィールドをファーストクラスとして扱えるような技があるのはうえの説明で理解した。Thanks. 思ってたより使えるなsml。 一方で、フィールドリテラル自体を、関数経由でなく、ファーストクラスとしてあつかう必要がある/そっちのほうが好ましい かもしれない 上のリンク先にある論文見るかぎり(例えば↓)そういういみでのファーストクラスフィールドは現状は扱ってないと書いてある。 SML# in Industry: A Practical ERP System Developmentn, # val get_x = #X; のXに実行時中に得られる文字列の値を使いたい String str = "myfld"; Rec rec = {str:"yaaa"}; みたいにさ。 うーんsmlでかくか、sml#つかうか、それともJava,Scala,でかくかまような。 型推論は必要ないかもしれないし、sml#ってどこまでメンテされるのか解らないし、SML/NJがいいかな、、しかし>>911 がきになるな。 scalaのオブジェクトでレコードをシミュレートするか、、 ファーストクラスのフィールドを持つ、 レコードで構造的な部分型関係をもっているようなのがほしい。
925 名前:デフォルトの名無しさん [2015/02/21(土) 06:49:52.82 ID:QYKbOsyjA] というかここMLのすれだったのか、関数型言語全般かと思った。
926 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 20:03:59.94 ID:KgB/c0aN.net] >>910 >Standard ML のレコード型は構造的部分型関係を持たないよ >構造的部分型関係を持つレコード型に類する型を持つのは OCaml や Java >いわゆるオブジェクト指向におけるクラスとそれらの間の継承関係のこと 自己レスだけど、この段落は間違いが含まれていたので訂正する まず: >Standard ML のレコード型は構造的部分型関係を持たないよ この文章は正しいけど、SML# は「構造的」部分型関係に類する型を持つ だから >>902 の関数 get_x は point_2d とpoint_3d のどちらにも適用できる(>>911 ) そして SML# だと、point_2d と point_3d のそれぞれの型について、 {X: real, Y:real} >= {X: real, Y:real, Z: real} という部分型関係を持ち、 ここで 関係 a >= b は「a の部分型が b である」ことを意味する 次に: >構造的部分型関係を持つレコード型に類する型を持つのは OCaml や Java >いわゆるオブジェクト指向におけるクラスとそれらの間の継承関係のこと この文章は完全な間違いで、正しくは 「「非構造的」部分型関係を持つレコード型に類する型を持つのは OCaml や Java (...後略)」になる たとえば(架空言語で)二次元座標上の点として 抽象クラス {} を定義し、その具象クラスとして {X軸: real, Y軸: real} および(原点からの相対的な) {角度: real, 距離: real} を定義できる ここで、2つの具象クラスのフィールド構成(=内部的構造)は全く異なるけれど、 {} >= {X軸: real, Y軸: real} および {} >= {角度: real, 距離: real} という部分型関係を持つ
927 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/03/06(金) 00:20:10.28 ID:Utx2vhNJ.net] MLで株取引してるヤツおる?
928 名前:デフォルトの名無しさん mailto:sage [2015/03/06(金) 19:18:02.97 ID:z8rf25M9.net] >>916 https://www.janestreet.com/
929 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 09:23:04.09 ID:4MGH5loU.net] 『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』 www.amazon.co.jp/dp/4798043761/ なんか面白そう。 ベストセラー1位だし。
930 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 11:09:33.39 ID:6e+Pm3/z.net] 著者名みてどん引き
931 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 14:52:19.95 ID:kM0sKeAC.net] >>918 まーたハゲの人バカやってるのか
932 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:13:28.21 ID:CyAc4DaC.net] これあわせで、qiitaで何ヶ月か前に宣伝始めたんだよな。 今回のMSの開発者向けイベントで、マルチプラットフォームアピールしてたから、F#にもチャンスが増えるかも。
933 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:35:56.40 ID:jZdgW1bu.net] ML系でマルチスレッドプログラミングってどうやるの? できれば、プリエンプティブで。 ノンプリなら、バインディングさえ準備できればpthreadとか使うだけで出来る? あと、マルチコアで動く処理系ってどんなのがありますか?
934 名前:デフォルトの名無しさん [2015/06/21(日) 15:56:19.44 ID:h+2IwqsQ.net] ノンプリエンプティブな並行のフレームワークとしてはConcurrent ML、 マルチコアでプリエンプティブで動く処理系は…MultiMLton?使ったことないけど
935 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:09:48.45 ID:jZdgW1bu.net] >>923 ありがとう!参考にしてみます。
936 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:17:40.35 ID:NI+fH6po.net] SML/NJにCMLが入ってるみたいだけど 呼び出しかた自体が良く分かりませんでした,,,
937 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 22:19:01.14 ID:OHI7eLtz.net] まだバイトコードだけなんで処理速度的にはメリット薄いがocaml-multicoreも開発中 https://github.com/ocamllabs/ocaml-multicore 諦めてF#が一番楽そう
938 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 11:48:28.89 ID:D//5Uocc.net] 新潮10月号(9/7発売)に最新長編『モナドの領域』330枚一挙掲載
939 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 15:49:50.98 ID:1yK25cK1.net] Haskell ガチムチいい男 F# タマもサオも取ったニューハーフ OCaml タマは摘出、サオは残したオカマ Java ノン気の一般人 C 古風な一般人 C++ 団塊の世代の一般人 C# ゆとり世代
940 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 08:14:56.43 ID:keSdeN9Q.net] Ocamlってschemeのvaluesに相当するのないのですか?
941 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 05:19:00.73 ID:OeY6iFU6.net] + と+. って絶対に区別しないといけないのです?浮動小数と整数でコードわけるのめんどくさい
942 名前:デフォルトの名無しさん [2015/11/01(日) 12:21:17.11 ID:FL14q5P6.net] min-camlを読み解こうと思ってできれば小さく分けてコンパイルして確かめたいです parser.mly/lexer.mll/id.ml/syntax.ml/type.ml ここまでが最初の塊のようなのでocamlyacc/ocamllexしたあとインタプリタで #use "type.ml" #use "id.ml" #use "syntax.ml" #use "parser.ml" #use "lexer.ml" までやるとlexer.mlを読み込んでいるのにlexer.mllでエラーがでます どうやってインタプリタに読み込めばいいのでしょうか
943 名前:デフォルトの名無しさん mailto:sage [2016/03/06(日) 17:23:06.30 ID:LFfI8YF2.net] C++11とboostでmlと等価なこと出来るようになってない?
944 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 12:29:48.85 ID:IQOnvxBL.net] 楽にはなっても等価にはなってない
945 名前:デフォルトの名無しさん [2016/06/16(木) 23:45:45.68 ID:ogi8+DdB.net] OCaml覚えてHaxeのターゲット自分で書けるようになったらなあって思ったけど パット見何が書いてあるのか良くわからない
946 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 07:50:35.12 ID:lXAilHyr.net] >>928 JavaScript 苦労人
947 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 00:00:06.57 ID:Zm57F0sF.net] OCaml インストールしてたら が出てきた。 絵文字がこんなところにも進出してるとは……
948 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 20:35:22.56 ID:K/hEThar.net] F#はいまいち盛り上がらんのでOCamlに戻るか
949 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 08:26:29.15 ID:FitcqrL7.net] OCamlには関数合成がないと訊くんですが、@@は合成ではないのですか
950 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 10:19:54.63 ID:75SbB3DN.net] OCaml勉強しはじめの初心者の質問なんですが、どなたか教えてください https://ocaml.org/learn/tutorials/modules.ja.html ここの説明によると、行末の;;を避けるためみんなこう書く open Amodule let () = hello () ってあるんですが、これがまず理解できない ()ってunitの定数値というかリテラルみたいなものなのではないですか? letで束縛する的なコードが書けることが腑に落ちないのですが・・・
951 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 13:34:30.13 ID:xfbClL/y.net] () って C の void みたいなもんやろ。 hello() の戻り値が void で両辺 void = void で OK みたいな。
952 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:21:07.36 ID:anKFyHj7.net] =が等号ならそんな感じってするのですが、 let 変数名 = 値 って形に当てはまると unitの()って変数名であり値でもあるってこと? とか考え出すと混乱して
953 名前:オまいます・・・ [] [ここ壊れてます]
954 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:22:47.76 ID:h+44ee0t.net] >>939 その用途の場合単なるエントリポイントなので()にそんなに意味はない。 let _ =〜でも動作するよ。
955 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:39:25.71 ID:MnPjnRyk.net] >>941 letは代入ではなくパターンマッチ 普段は let パターン = 式 のパターンのところに新規の束縛(変数名)を一個置いてるだけ let 1 =2 とか書けてMatch_failureになるよ
956 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:44:32.31 ID:TuW8Vb/N.net] 皆さんありがとう、何となく分かりました 実際に「let x::xs = [1;2;3;4];;」とかやるとx=1、xs=[2;3;4]とかなりますね letってのはmatchの単独パターンバージョンみたいな感じなんですね、きっと
957 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:38:27.01 ID:xDozGH3Q.net] OCamlも捨てがたい qiita.com/HirofumiYashima/items/98d35b40dde12bbb5d6d
958 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 01:00:38.68 ID:m/Nfzz4G.net] たびたび初心者的質問ですいません OCamlにはListやArrayに対するgroup by関数って無いんでしょうか? 標準ライブラリ(ideoneやyukicoderで利用可能)の範囲内で存在すれば嬉しいんですが・・・
959 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:14:26.78 ID:ZFd7dRv3.net] List.filter : ('a -> bool) -> 'a list -> 'a list ならある。 Arrayにはないから自力で実装するかExtLibでも使おう。 っていうか標準ライブラリだったら自分で検索しようね。 馬鹿なの?
960 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:40:33.19 ID:m/Nfzz4G.net] >>947 標準ライブラリは探したけど、無かったから自作したよ 最近だとF#にしろscalaにしろgroupbyがあるのが当たり前だから、確認のため聞いてみた その程度の事情も察せないお前が馬鹿じゃねw
961 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:50:26.74 ID:uZnwqH5s.net] 宿題や競プロでもやるんじゃなきゃCoreかBatteries入れないとやってられない
962 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 11:17:54.65 ID:hxR4/XV4.net] 標準ライブラリゴミすぎ
963 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:27:19.82 ID:vL431mpn.net] map reduceに相当するもんがあればいけるんじゃね
964 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 20:54:32.60 ID:nBcs47LL.net] 「プログラミングの基礎」を買ってきてOcamlを始めようとしたのですがインタプリタが日本語を表示してくれません。ぐぐっても知識が足らず解決法がわからなくて途方に暮れています。誰か助けて…
965 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:06:38.41 ID:nBcs47LL.net] 使ってる環境はubuntu16.10です。