ocaml

Memcached クライアント

get, set, add, delete を実装した。機能的にはまだまだなところがあるけれど、それはおいおいってことで。 何かを作りながら、学んでいくのも悪くはない。本を読み上げるという目標だけだと、やる気がわかないんだよね、僕は。 (**************************…

モジュールで作ってみる

クラスを使ってみる - A More Beautiful day 前にクラスで作ったものを、モジュールを使って、書き直してみた。 クラスとモジュールのどちらが良いというわけではないけれど、クラスの方が好きかも。 module Counter = struct type t = { mutable value : in…

GET リクエストのレスポンス解析

GET リクエストのレスポンス解析処理を作ってみた。文字列解析は String より Str を使った方が楽だった。String 単体では機能が乏しいので、文字列解析をするなら Str が主体になるのかな。 #load "str.cma";; let s = "VALUE foo 0 3\r\nbar\r\nEND\r\n";;…

Memcached クライアント(案)

OCaml で Memcached のクライアントを書いてみようと思っています。 とりあえず形だけ。仕組みは簡単そうなので、もう他の人が作っていたりするかもしれないけれど。通信とクラス化、ちょっとした文字列処理を学べそうだから、やってみる。 (* * not support…

クラスを使ってみる

OCaml でクラスを作ってみた。Ruby の attr_accessor のようなものはないのかな。 class counter = object val mutable value = 0 method get = value method set v = value <- v method increment = value <- (value + 1) method decrement = value <- (val…

文字列から文字に変換

文字列から文字を取得するっていうのが無かったので、作ってみた。 OCaml では、文字列中の文字列を検索をする関数がないようだ。文字を検索する関数は見つけたけれども。作れってことか。 そこんところを補完するライブラリなんてもがあったりなんかして。 …

HTTP クライアント

受信処理をループにしようと思ったけれど、よくわからなかったので、再帰処理で書いてみた。 調べてみると、for や while が使えるみたい。 let host = "localhost" and port = 8080 in let haddr = Unix.gethostbyname host in let sock = Unix.socket Unix…

OCaml チャンネル

OCaml のチャンネルを作ってみた。http://wassr.jp/channel/ocaml

Module Array その 1

Array モジュールの関数をいくつか使ってみた。残りは次回。 val make : int -> 'a -> 'a array # let a_i = Array.make 3 0;; val a_i : int array = [|0; 0; 0|] # let a_s = Array.make 3 "string";; val a_s : string array = [|"string"; "string"; "st…

演習

ライブラリのマニュアルを見ながら、少し動かしてみた。これからも動作を確認しながら、手探りでやってみる。 それとは別に、OCaml ユーザホイホイなんてものはないのか、考え中。 Hello, World! # Printf.printf "Hello, World!";; Hello, World!- : unit =…

インタプリタ起動時のエラーあれこれ

こちらのサイトを参考にしました。というか、同じエラーが出たので、同じような対応をしただけでした。OCAMLLIBの設定 - jmaxの開発日記 MinGWでUnixライブラリを使う - jmaxの開発日記 環境変数 OCAMLLIB に \lib を設定する D:\home>ocaml.exe Objective C…

Building OCaml for Windows using Mingw/MSYS - エラーと対処方法

今回ビルドしてみて、発生したエラーと対応した内容を載せておきます。 'bash' が見つからない 現象 make -f Makefile.nt world 実行時に発生 'bash' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていま…

Building OCaml for Windows using Mingw/MSYS

OCaml を Cygwin 抜きでビルドしたときのメモです。本家の手順だと、Cygwin が必要らしいので、参考程度に。 0. 必要なもの OCaml のソースコード(ocaml-3.10.2.tar.gz) Mingw/MSYS の環境 MSYS の bash (今回は bash-3.1-MSYS-1.0.11-1.tar.bz2 を使用) Min…