OCaml

はじめてのQuineリレー

概要 昨日、自分自身を出力するHaskellプログラムを生成するOCamlプログラムを生成するSchemeプログラムを生成するRubyプログラムを生成するJavaScriptプログラムを生成するCプログラムを書いた。 #include<stdio.h> int main(){char*g="var p=print;p('puts %%^(form</stdio.h>…

コマンドライン引数パーザのインタフェース

getoptとかって言語(やライブラリ)によってかなり使い方が違っていて,いつも困る.しかも,どれも(慣れるまで)それなりに分かりにくくて,どう書くのがその言語 "らしい" のかよくわからないことが多い.特にOCamlのArg.parseは何故か副作用ばりばりでやり…

例外処理

Rubyのensureに相当することは,OCamlではどうすればいいんだろう. else節がある場合.(追記:間違ってたので修正) # Ruby begin a rescue Error b else c ensure d end (* OCaml *) try begin (try a c with Error -> b); d end with x -> d; raise x else…

プログラムのロード

#use "hoge.ml" とすると,読み込んで実行してくれるらしい. #load "hoge.ml" とすると, File hoge.ml is not a bytecode object file.と言われた.bytecode object fileも読み込めるみたいね.

let recで循環リスト

ふと思い付いたので試してみた. # let rec lis = 1 :: lis;; val lis : int list = [1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; …

OCaml始めました.

文法がよく解らない.Syntax errorの嵐.Schemeではこんなことはなかったのに…. echoを書くのにえらく苦労した. いくつかよく解らない点やがっかりした点があるのでとりあえず列挙 マニュアルが解りにくい.(日本語の)ドキュメントが少ない? デバッグ用…