ocaml

ocamlで基数変換

前にpythonで書いてみたことがあったので、練習のためocamlでも書いてみた。 関連 : pythonで10進数からn進数に基数変換 - brainstorm プログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア…

OcamlでUnique Elements

CodeEvalにUnique Elementsという問題があって、前にpythonで書いたので、練習のためocamlでも書いてみた。 ソート済みのintのリストから重複を除いて返せというもの。関連 : PythonでCodeEvalのUnique Elements - brainstorm

2分探索木

「プログラミングの基礎」をちょっとずつ読んでて2分探索木の走査がでてきたんで、pythonでも書いてみました。ocamlだとこう type tree_t = Empty | Leaf of int | Node of tree_t * int * tree_t (* 目的 : dataが2分探索木treeに含まれているかを調べる *)…

ocamlで文字列を1文字ずつのリストにする

昨日、pythonとrubyについて書いたので、ocamlでどう書くか調べてみた。 こんな感じか (* 文字列を1文字ずつ分割してstring listにして返す*) (* split_string : string -> string list *) let split_string s = Str.split (Str.regexp "") s;; (* test *) l…

エラトステネスのふるい

「プログラミングの基礎」で課題にエラトステネスのふるいが出てきたんで、pythonで同じように書いてみたプログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック:…

ocamlのトレースでパラメータがと表示されるケース

昨日のような簡単な再帰関数だとトレース結果もわかりやすいので、もうちょっと複雑なクイックソートのトレースを見てみました。 let rec quick_sort lst = let take n lst p = List.filter (fun item -> p item n) lst in let take_less n lst = take n lst…

traceディレクティブで関数呼び出しをトレースする

再帰がわかりにくい場合#traceで呼び出しをトレースできる、ということを知りました。 let rec sum lst = match lst with [] -> 0 | first :: rest -> first + sum rest let test1 = sum [1;2;3;4;5] = 15 #trace 関数名;;でトレースを開始して、#untrace 関…

flymake-tuaregを入れてみた

tuaregのついでにflymake-tuaregも入れてみました。設定これだけ init.el (require 'flymake-tuareg) (add-hook 'tuareg-mode-hook 'flymake-tuareg-load) 実行しなくてもエラーになってるのがわかるので便利。 以下はlstが空のときに0を返すべきところ[]を…

tuaregで日本語を表示する

昨日の続きそういえば、mlファイルで日本語を入力してtuareg-eval-buffer(C-c C-b)すると、文字がちゃんと表示されません。シェル側でset-buffer-process-coding-systemでeuc-jpを指定すると直ります。

Emacsでocamlを書く設定

プログラミングの基礎を読んでるんで、写経したり、課題を解くのに、emacsでocamlを書く最低限の設定をしようと思いました。プログラミングの基礎 [ 浅井健一 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 2,484…