タグ

ocamlに関するNnwwwのブックマーク (27)

  • ppx_deriving.showを使ってみる - podhmo's diary

    ppxはpreprocessor的なもの。 opam install ppx_deriving field.ml type point2d = float * float [@@deriving show] type person = { name: string; age: int; } [@@deriving show] type student = { name: string; (* 最近はレコードに同名のkeyを付けてもokになったっぽい *) age: int; grade: int; } [@@deriving show] (* val pp_student : Format.formatter -> student -> unit val show_student : student -> string が生成される *) let () = let s = {name =

    ppx_deriving.showを使ってみる - podhmo's diary
  • 幽霊型による部分型付けの紹介

    幽霊型による部分型付けの紹介 これまでは、幽霊型を使って、型レベルの自然数や整数を作る方法を中心に話してきました。 幽霊型がなんだかわからない人は、 幽霊型の紹介 読むとよいでしょう。 今回は、もう少し違ったテーマとして、幽霊型を使った部分型付けの話をしたいと思います。 予定では、今回も含めて 3 種類の方法を紹介するつもりですが、 結論から言うと、今回の方法は変な制限がなく、最も扱いやすい手法です。 基礎知識 部分型って何? この記事では、便宜上、型は値の集合である、と思うことにしましょう (値の集合だと、一般的な型の定義としては狭すぎますが、あくまで説明の都合です)。 例えば、int 型は整数の集合 $\mathbb{Z}$、nat 型は自然数の集合 $\mathbb{N}$、 という具合に対応します。 集合には、部分集合として包含関係があり、先程の例では $\mathbb{N} \s

    Nnwww
    Nnwww 2015/11/18
    参考になる使い方。何気に共変反変の説明がその辺の記事より簡潔
  • GitHub - gasche/manual-ocamlbuild: A new reference manual for the ocamlbuild tool

    Nnwww
    Nnwww 2015/10/15
    ocamlbulid覚えないとなーと思ってググっていたら丁度良い物が
  • OCaml+Vim+OS X

    by Scott Owens Modern language, ancient editors There are two editors with good support for OCaml: Emacs and Vim. Some other editors have support for OCaml syntax highlighting and automatic indenting – of sometimes dubious accuracy – and you can get by with that. In fact, everyone used to have to get by with mediocre editor support, and it wasn't that terrible; its only in the past few years that

    Nnwww
    Nnwww 2015/10/03
    vimでOCaml情報
  • caml-list - [Caml-list] 20th anniversary - arc

    From: Xavier Leroy <Xavier.Leroy AT inria.fr> To: caml-list <caml-list AT inria.fr> Subject: [Caml-list] 20th anniversary Date: Sat, 12 Sep 2015 10:04:11 +0200 Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=xavier.leroy AT gmail.com; spf=Pass smtp.mailfrom=xavier.leroy AT gmail.com; spf=None smtp.helo=postmaster AT mail-wi0-f175.google.com Ironport-phdr: 9a23:BzdSGBM+S

    Nnwww
    Nnwww 2015/09/12
    OCaml入門したら20周年だった
  • 幽霊型の紹介

    幽霊型の紹介 ときどき、ネットで幽霊型 (phantom type) という単語を見かるようになりました。 私は幽霊型を応用した線形代数演算ライブラリ SLAP (Sized Linear Algebra Package) を開発しており、 幽霊型についてはちょっとだけ詳しいつもりでいます(物の研究者に比べれば雑魚同然ですが)。 なので、今後何回かに記事を分けて、幽霊型のトリックについて、知っていることを書いていこうと思います。 基的には、関数型プログラミング言語 OCaml を使って説明しますが、 可能な限り OCaml の独自拡張は使わない方針でいきます。 今日はウォーミングアップも兼ねて、簡単な幽霊型の紹介だけします。 トリッキーなテクニックは次回以降で扱う予定です。 入出力両方のチャンネルに適用可能な seek 関数を作る OCaml のチャンネル型(C で言うところ FILE

    Nnwww
    Nnwww 2015/08/12
    OCamlによる幽霊型の分かりやすい紹介
  • More monads in OCaml

    While popular in Haskell, monads can be encoded effectively in OCaml too. This post describes one such encoding, as well as the process of developing a modern OCaml program. I assume that you know what monads are and why you should care about them. If this is not the case, then there are some excellent books 1 out there. Introduction Haskell is famous for the integration of monads in its core lang