OCaml ・ OcsigenによるWebアプリケーション今井 敬吾 / OCaml-Nagoya
(twitter id : keigoi)
型安全
2009/8/22, オープンソースカンファレンス2009Nagoya
OCaml?
• 速い (C++に肉薄!)
• コードが短い (型推論)
• 安全 (SegFaults/NullPointerExceptionがない)
• 再利用しやすい (多相性)
オーキャムル:オープンソースのプログラミング言語
最高の言語
強力な型システム
Ocsigen : OCamlのWebアプリケーションフレームワーク
•型安全
•XHTML を表した型が使える!
•リクエストパラメータやフォームも型付き!
•設定ファイルなし!
XHTMLリテラル•<< ... >> 部分にXHTMLを書ける
•XHTML 中 $ ... $ 部分に OCaml を書ける
•例
<< <html> <head><title>Adder!</title></head> <body> <p> $ pcdata (string_of_int (a+b)) $ </p> </body> </html> >>
こんな風に書きますlet register = register_new_service ~path:["hello"] ~get_params:(string “name”) (fun _ name _ -> return << <html> ... <p> こんにちは、$ pcdata name $ さん </p> </html> >>)
register_new_service でURLとサービスを定義
-> http://localhost:8080/hello
register_new_service:3つのパラメータ
let register = register_new_service ~path:["adder"] ~get_params:(int "a" ** int "b") (fun _ (a,b) _ -> return << <html> ... <p> $ pcdata (string_of_int (a+b)) $ </p> </html> >>)
相対パス パラメータ名と型
ページ本体の高階関数
欠点?
•テンプレートエンジンがない
PGOCaml :DBレイヤも型安全に•OCaml に SQL を埋め込み-> prepared statement に変換される
•型安全!
•らくらくDBアクセス!
課題
•OCamlプログラマ育成•マニュアルの日本語化
ご清聴ありがとうございました。