タグ

ocamlに関するmogellaのブックマーク (4)

  • 第12回 「型推論」の実装法

    型推論:「コンピュータ以前」からML,Java 7まで OCamlをはじめ,MLやHaskellなど,多くの型付き関数型言語には型推論という機能がある。この連載でも,暗に陽に,OCamlの型推論機能を利用してきた。 例えば,以下のような関数say_hello_toを定義してみよう。文字列引数nameを受け取り,nameの前に定数文字列"hello "を付け加えて返す,という関数だ。 # let say_hello_to name = "hello " ^ name ;; val say_hello_to : string -> string = <fun> このように,引数や返り値の型を指定しなくても,say_hello_toはstring ->string型(文字列を受け取り,文字列を返す関数)であると自動推論される。 ただし,(例えばプログラムを読みやすくするために)もし型を書きたけれ

    第12回 「型推論」の実装法
  • GNU make でのコンパイル

    OCamlMakefile と組み合わせて GNU make を使う OCamlMakefile は、 複雑なOCamlプロジェクトのコンパイル作業をとても楽にする生成的な Makefile だ。 標準のライブラリのみを使う基的なOCamlプログラムやライブラリについては、 単にカレントディレクトリにOCamlMakefileをコピーし、 以下の Makefile を作成する: RESULT = myprogram SOURCES = \ mymodule1.mli mymodule1.ml \ myparser.mli myparser.mly mylexer.mll mymodule2.ml \ mymainprogram.ml OCAMLMAKEFILE = OCamlMakefile include $(OCAMLMAKEFILE) これは5つのコンパイル対象がある上に ocam

  • The MinCaml Compiler

    Document generation engine that can be used to generate PDF and Word documents from custom software applications With Docmosis you can quickly and easily add document generation and reporting to your software application. Documents are generated from templates which can be created using Microsoft Word or LibreOffice. These templates utilize simple placeholder fields to handle text, repeating and c

  • 第10回 静的スコープと関数クロージャ~関数型言語のインタプリタを書いてみる~

    前回と前々回は,関数型言語MLの一種であるObjective Caml(OCaml)で,単純な独自の命令型言語MyCのインタプリタとコンパイラを実装してみた。MyC言語では,変数はすべてグローバルで,宣言も不要だった。 しかし,グローバル変数だけでは名前の衝突などの問題があり,大きなプログラムを書くことは難しい。そのため,ほとんどの汎用プログラミング言語には,変数の有効範囲(スコープ)を制限する機能がある。例えば,すでに何度も登場しているが,OCamlでは次のような形の式を書くことができる。 このように書くと,式1の値が変数xに置かれる(xが束縛される,という言い方をする)。そのxの値は,式2の中でのみ使うことができる。つまり,xのスコープは式2だけということになる(in以降を省略することもできる。その場合はそれ以降のすべての式がスコープに含まれる)。 ただし,もし式2の中でまた同じ名前の

    第10回 静的スコープと関数クロージャ~関数型言語のインタプリタを書いてみる~
  • 1