タグ

ocamlに関するgologo13のブックマーク (45)

  • ML型推論の光と影影 @@平成廿一年東都大駱駝会平成廿一年東都大駱駝会 京都大学 五十嵐 淳 自己紹介 情報科学の研究をしています 専門はプログラミング言語とか型理論とか 研究のひと�

    ML型推論の光と影影 @@平成廿一年東都大駱駝会平成廿一年東都大駱駝会 京都大学 五十嵐 淳 自己紹介 情報科学の研究をしています 専門はプログラミング言語とか型理論とか 研究のひとつはJavaの改良ですが、Javaでプログラ ムは書きません(けません) ML歴16年、OCaml歴は11年くらい の著者です 小学生の解法 全員ラクダだとすると足の数は 4 x 7 = 28 実際には20あるから8分ラクダが多い ラクダ一匹をOCamlプログラマに置き換えると 足は2減るから4人置き換えれば丁度よい OCamlプログラマ 4匹、ラクダ 3 匹 いきなり鶴亀算 OCamlプログラマとラクダが合わせて7匹いる。 足の数が合わせて20である時、 OCamlプログラマとラクダはそれぞれ何匹いるか。 中学生の解法 OCamlプログラマの数を x、ラクダの数を y とすると、 x + y =

  • 第6回 OCamlの「モジュール・システム」

    連載の第4回では,プログラミング言語「OCaml」のオブジェクト関連の機能を紹介した。しかし,OCamlには,オブジェクトとは似て非なる「モジュール」の仕組みもある。むしろ,通常はオブジェクトよりモジュールのほうがよく利用されている,ともいえる。実際に,OCamlの標準ライブラリ(http://caml.inria.fr/pub/docs/manual-ocaml/manual034.html)もモジュールとして提供されている。そこで,今回はOCamlのモジュール関連の機能(モジュール・システム)について紹介しよう。 なぜモジュール・システムが必要か 言うまでもないが,モジュール・システムの主要な目的は「モジュール性」,つまり,できるだけ独立した複数の部品にプログラムをわけることにある。 例えば,OCamlで「マンデルブロ集合」を描画するプログラムを記述するとしよう。マンデルブロ集合とは

    第6回 OCamlの「モジュール・システム」
  • 実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記

    プログラマが実務で出会うのは、問題が整理されたキレイな仕事ばかりじゃない。プロダクトに質的じゃない部分でもプログラムを書く必要に迫られる。いわゆる開発方法論では抽象化されてしまう、今ここにいるソフトウェア開発者の悩みだ。 今日は、私が仕事で書いたOCamlのコードを晒して、如何にOCamlがプログラマの仕事の道具として優れているかを主張したい。泥臭く、関数的でない、エレガントさのかけらもない、生活臭のあるコードだ。勤務先はOCamlをメイン言語として使っている。研究所とかではなく普通に受託開発を生業としている会社だ。OCamlは理論一辺倒で、マニア向けで、現実のソフトウェア開発には使えない、という誤解が万が一あるかもしれないが、全くそんなことはない。 (Haskellもそうだけど、それはまたの機会に) いかにOCamlが優れているかについての概論めいた話は、OCamlを数十人体制で10年

    実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記
  • OCamlでモナドっぽいものを作る | 黒曜の吹き溜まり

    ライブラリの拡充と関数型言語のお勉強を兼ねて、モナドっぽいものを実装して見ました。 単純にモナドをOCamlで使いたいだけならMonad拡張を入れる方が手っ取り早いですが、あまり外部ライブラリへの依存性を入れたくないのと、OCamlの記法の中だけでどこまで出来るか試してみたかったので。 ちなみに誤解を避けるため先に断っておきますが、自分はHaskellerではありません。 以下ではモナドに関してHaskellをかなり参考にしていますが、Haskellのモナドに対する勘違いなどが含まれている可能性があります。 ご了承下さい。 とりあえず、インターフェースとなるシグネチャから作っていきます。 (* 型付きモナドのシグネチャ *) module type TypedMonadType = sig type 'a t val empty : 'a t val singleton : 'a -> '

  • GODI - Ocaml for Everybody

    GODI is discontinued. This is the archived content of the former site godi.camlcity.org. GODI bundles the Ocaml compiler with a large list of add-on packages, and serves as a development platform for Ocaml applications. GODI makes it very easy to install open source libraries for all kinds of development areas on your computer. It is intended as a daily toolkit for developers who are mainly intere

  • ocamlscript: natively-compiled OCaml scripts

    Introduction ocamlscript compiles scripts, i.e. one-file programs, into natively-compiled binaries, and executes them. Basically, a script named alpha is compiled into alpha.exe. If alpha.exe is more recent than alpha, then alpha.exe is executed directly, otherwise alpha is recompiled first. Compilation commands reside in the first section of the script. They are written in OCaml and consist norma

  • batteries

    An effort to define a comprehensive standard library for OCaml, inspired in part by what modern industrial languages (Java/.Net) manage to provide out-of-the-box. Members: user593 user492 user142 user146 user188 user152 user194 user145 user234 user112 user228 user172 user574 user533 user103 user105 user135 user142 user146 user4449 user4449 user10125 user20475 user18347 user18347 Releases Registere

  • なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。ちょっと前にOCaml系のエントリを色々と眺めていたらYaron Minsky氏のエントリを見つけたので翻訳してみました。 OCaml for the Masses - ACM Queue Yaron Minsky氏はJane Streetで第一線で活躍されるエンジニアで、Jane Streetの技術ページをはじめ多くの場所でOCamlに関しての知見を語ってくださっています。 Jane Street Tech Blogs エントリはJohn Hughesの名エントリ「なぜ関数プログラミングは重要か」を受けてACM Queueに寄稿されたものの日語訳です。 なぜ関数プログラミングは重要か Why the next language you learn should be functional YARON MINSKY, JANE STREE

    なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog
    gologo13
    gologo13 2011/11/07
    コードが短いのが正義というのは同意。コードを書くほどバグが出るのだから、短いほうがいいに決まってる。
  • OCaml - The OCaml Manual

    Index of modules Index of module types Index of types Index of exceptions Index of values Index of keywords Xavier Leroy, Damien Doligez, Alain Frisch, Jacques Garrigue, Didier Rémy and Jérôme Vouillon

  • omlet.vim - Much better OCaml indentation, and more... : vim online

    OMLet provides a much better indentation for Caml/OCaml files than the official one. It mostly behaves as tuareg-mode for emacs does. Omlet supports most of the language features, including objects. I believe that the result is already very convincing, check at (http://perso.ens-lyon.fr/david.baelde/productions/omlet.php). You are no more forced to switch to emacs for editing OCaml! And omlet also

  • https://ocsigen.org/

  • OCaml の let と let rec はなぜ別扱いになっているのか、決定版、もしくは OCaml 暦十何年だったか忘れたけど仕事で Haskell を一年使ってみた - camlspotter’s blog

    はじめに断っておくが、全部Pros/Consのあるデザインチョイスなので、こうじゃなきゃいけないってことではない。ただ、 OCaml はこの選択をした、そいう事だ。 前回の「経験15年の OCaml ユーザーが Haskell を仕事で半年使ってみた」 http://d.hatena.ne.jp/camlspotter/20101212/1292165692 のような易しい文章ではないのでわからない人はとことん判らないだろう。まあ勘弁して欲しい。 あと、面倒だろうが、読む人は全部常体を敬体にして最後に「と思います」をつけて読んでくれ。ください、と思います。 Shadowing は便利であると思っている OCaml の let は非再帰なので以前定義された名前に別の値の束縛をオーバーライドできる。OCaml の人はこれが便利だと思っており皆普通に使っている。詳しくは http://d.hat

    OCaml の let と let rec はなぜ別扱いになっているのか、決定版、もしくは OCaml 暦十何年だったか忘れたけど仕事で Haskell を一年使ってみた - camlspotter’s blog
  • 今時 OCaml で非末尾再帰呼び出し使うなんて - camlspotter’s blog

    非    し!       -── ‐-   、  , -─-、 -‐─_ノ   O 小 末    // ̄> ´  ̄    ̄  `ヽ  Y  ,  ´     )   C え 学 尾    L_ /                /        ヽ   a  | 生 再    / '                '           i  m マ ま 帰    /                 /           く  l ジ で 許    l           ,ィ/!    /    /l/!,l     /厶, で だ さ   i   ,.lrH‐|'|     /‐!-Lハ_  l    /-!'|/l   /`'メ、_iヽ よ れ   l  | |_|_|_|/|    / /__!__ |/!トi   i/-- 、 レ!/   / ,-- レ、⌒Y⌒ヽ ね る 

    今時 OCaml で非末尾再帰呼び出し使うなんて - camlspotter’s blog
  • OCaml で LLVM -- 事始め - camlspotter’s blog

    この記事は LLVM-2.8 とその OCaml binding を使った LLVM プログラミングの始め方について、良く判らないという声を聞いたので、理屈はともかく、どうやって始めるかを主眼に書いた物です。OCaml や Makefile を全く書いた事が無いし知りたくも無い、でも LLVM を使いたいという方にはちょっと無理な内容になっています clang とか LLVM とかこの頃よく聞きますよね。Apple が製品に結構使っているという話ですし、気になっている人もいるでしょう。私も LLVM、気になりました。要するに、プログラム内で Cみたいな言語(語弊がありますが)の構文ツリーを動的に生成して、それを、はいお願いと LLVM のエンジンに投げるとアーラ不思議、各アーキテクチャ用にいい感じで JIT コンパイルしてくれてスイスイ動く、という魔法のような話です。 マシン語は Z80

    OCaml で LLVM -- 事始め - camlspotter’s blog
  • SVMsequel

    SVMsequel Documentation Hal Daume III () First Release 31 March 2004 Introduction SVMsequel is a complete environment for training and use support vector machines. Some familiarity with kernel methods will be helpful (see here for class notes I've used for using SVMs for natural language processing if you need a refresher. Documentation There is far too much to document here, so please see svmsequ

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記

    Haskell Advent Calendar jp 2010のためのエントリです(17日目). 6日目の id:camlspotterさんの 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた に対するカウンター(になってるかどうか分からないですが)みたいな感じです. 近くて遠い隣人:HaskellとOCaml OCamlはHaskellと違って副作用があり,更にHM型推論をもつためプログラマは質的な部分の記述に注力しつつ,コードのチューニングもできる. つまり働くHaskellプログラマがシリアスなソフトウェアを書く時に使えるほとんど唯一の選択肢だ.しかし,同じ静的型付けの関数型言語でありながら,OCamlとHaskellの見た目はかなり異なる. この記事では, HaskellプログラマがOCamlを使い始めると,どういうトラップにハマるかを書く. なかでも,

    Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • モジュールを「拡張」するテクニック - camlspotter’s blog

    すとっどりぶ ご存知のように OCaml の stdlib は「標準ライブラリ」ではありません。「すとっどりぶ」です。大事な事などでもう二度言いますってやつです。これは OCaml コンパイラがコンパイルできる様にするための最小限のライブラリ+ INRIA の人たちの気分で加えた関数から成っています。当然、OCaml をバリバァリ使う人には全く力不足です。「すとっどりぶ」で満足できない人は Jane Street Core や OCaml Batteries Included 等を使うと良いです。 でも、なんだか自分の書いているソフトに外部のライブラリを使って変な依存性を入れるのはどうかなあ、とか、わざわざ巨大な「代替標準ライブラリ」を入れるの面倒だ、という人もいるでしょう。そういう時は自分で「すとっどりぶ」を拡張すればよい。その時に便利な方法をお教えします。 すとっどりぶを拡張する たと

    モジュールを「拡張」するテクニック - camlspotter’s blog
  • モジュールを「拡張」する― 3.12.0 の機能を使って…(みるけどうまくいかない) - camlspotter’s blog

    OCaml のモジュールが大好き!! 3.12.0 インストールしてるよ!という人だけ、読んで下さい。それ以外の人は、あんまりわかんないと思う。 前回のまとめ 綺麗にドキュメント(.mli)を書きつつ、既存OCamlモジュールを「拡張」する方法を紹介しました (* xmystdlib.ml *) module List = struct let iteri f list = let rec iteri f n = function | [] -> () | x::xs -> f n x; iteri f (n+1) xs in iteri f 0 list end (* xmystdlib.mli *) module List : sig val iteri : (int -> 'a -> unit) -> 'a list -> unit (** iteration with index

    モジュールを「拡張」する― 3.12.0 の機能を使って…(みるけどうまくいかない) - camlspotter’s blog