タグ

OCamlに関するmnruのブックマーク (12)

  • なぜ次に学ぶ言語は関数型であるべきか - 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
  • 4.2 多相バリアント

    1.4 節「レコードとバリアント 」で紹介したバリアントは、データ構造やアルゴリズムを組み立てるときにとても便利です。しかしモジュール化プログラミングで使っていると、時として柔軟性に欠けることがあります。これは、コンストラクタが個々に名前を予約して、個別の型に対応させることに起因します。異なる型に同じ名前を使うことはできません。ある型の値が、複数の構成子のある別の型に属すということを考えてみてください。 多相バリアントを使えば、この根的な前提を取り除きます。つまり、バリアントタグは特にどの型にも属しません。型システムはバリアントタグの使われ方から、そのバリアントタグが許される値かどうかを判断するだけです。バリアントタグは使用する前に型を宣言する必要がありません。バリアント型はその使われ方それぞれから独立に推論されます。 プログラム中では、多相バリアントは通常のバリアントと同じように使えま

  • CS 3110 - Spring 2013 - Lecture Notes

    mnru
    mnru 2013/06/01
    Data Structures and Functional Programming
  • 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の日記
  • OCaml 開発環境について ~ コンパイラに付属しない非公式ツールたち - camlspotter’s blog

    2012年12月での関数型言語 OCaml コンパイラ一式には入っていない 内部もしくは外部開発されたのツール群の紹介を行う。 例によって多岐に渡るので、一つ一つの詳しい説明は行わない。 各ツールの細かい情報はそれぞれのドキュメントを参照して欲しい。 リンクは貼るの面倒だからググって。 もし知らないツール名があったらちょっと読んでみて欲しい。 もしかしたらあなたの問題を解決するツールがあるかもしれないから。 ライブラリとツールの中間のようなコード生成系も取り上げた。 あくまでも基的に私が触ったことのある物しか紹介しないから、 そっけなかったりするのはあまり触ってないということ。 なんでこれはなんで取り上げてないの?と思ったら、それは使ったことないから。ごめんね。 不満があったら自分で紹介記事書いてください夜露死苦! ★は重要度。五点満点。 コンパイラ同梱のツールの紹介はもうした。 htt

    OCaml 開発環境について ~ コンパイラに付属しない非公式ツールたち - camlspotter’s blog
    mnru
    mnru 2013/05/27
  • azito.com

    This domain may be for sale!

  • 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
  • OCamlでモナドっぽいものを作る | 黒曜の吹き溜まり

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

  • ITプランニング OCamlのページ

    while true do  let line = read_line () in  print_string line done

    mnru
    mnru 2012/11/12
  • Functional Programming

    ちょっと寄り道ー構文解析の話(オプショナル) 現在までの処理系には、ミニOCaml言語プログラムの構文解析を行ってくれる部分がないので、 たとえば、if 2=-1 then 1*2 else 1*(2+3) という式を、 If (Eq(IntLit 2, IntLit (-1)), Times(IntLit 1, IntLit 2), Times(IntLit 1, Plus(IntLit 2,IntLit 3))) というように exp型の式として書かなくてはならず、入力が大変であり、間違いやすい。 もし、 parse "if 2=-1 then 1*2 else 1*(2+3)" とすると、上記のexp型の式を生成してくれる関数parseがあれば、大変に便利 である。 ここで、「構文解析する」という言葉を使ってきたが、正確には以下の2つの プログラムから構成される。 字句解析器 (l

  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

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

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • 実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記

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

    実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記
    mnru
    mnru 2012/06/17
  • 1