Arantium Maestum

プログラミング、囲碁、読書の話題

js_of_ocaml

js_of_ocamlでocamllex/menhir製パーサをJSにコンパイルする

私は趣味の言語処理系実装でocamllex/menhirというパーサジェネレータにお世話になることが多い。(このブログの過去記事を参照) js_of_ocamlは基本的にFFIを使わないライブラリだったらJavaScriptにコンパイルしてくれるはずなので、ブラウザでパーサが使…

js_of_ocamlでsnake作ってみた

OCamlでcanvasとLwtを使ってsnakeゲームを実装して、js_of_ocaml + duneでコンパイルしてみた: js_of_ocaml snake - compile to JS with command `dune build ./main.bc.js` · GitHub ポイントとしては ゲームロジックを比較的ステートレスな形でgame.mlに…

js_of_ocamlでゲームループを実装する方法二つ

js_of_ocamlでゲームループ的なものを実装する方法を考えてみたい。 ゲームループというのは、特定の時間デルタごとに何らかの計算と出力が行われるようなコードのことだ。今回は例によって最小構成ということで、1秒ごとにコンソールに"hello"と出力してい…

js_of_ocamlでHTMLにCanvasを追加して操作してみる

前回、前々回に続いてjs_of_ocamlの話。今回はDOM要素をコード側で作成する。 だいたいの元ネタはjs_of_ocaml公式サンプルのこれ: https://github.com/ocsigen/js_of_ocaml/blob/master/examples/minesweeper/main.ml ただし、この記事ではCanvas要素を作成…

js_of_ocamlとduneでDOMオブジェクトを操作してみる

前回に続いてjs_of_ocamlとduneを使ってみる話。今回はJs_of_ocamlが用意しているDOM操作のAPIと構文を使う。 ディレクトリ構成は前回と同一: . ├── dune ├── main.ml └── main.html main.htmlもまったく変わらず: <html> <head> <script type="text/javascript" src="_build/default/main.bc.js"></script> </head> <body> </body> </html> main.ml: open Js_of_ocaml let …

js_of_ocamlをduneでビルドしてブラウザで確認するための最小構成

ここ数日、ブラウザゲーム的なものを作りたくなってJs_of_ocamlを調べていた。 duneを使ってビルドできるのがわかったのだが、どういう構成でやれるのかは少し試行錯誤があったので、半ば備忘録もかねて記事にしておく。 この記事ではタイトルどおり最小構成…