Skip to content

Instantly share code, notes, and snippets.

@akanehara
akanehara / c9_5.ml
Created September 25, 2014 11:25
偶数の要素だけ抽出する even
(* 目的: 偶数の要素だけ抽出する *)
(* even : int list -> int -> list *)
let rec even xs =
match xs with
[] -> []
| first :: rest ->
if first mod 2 = 0
then first :: even rest
else even rest;;
@akanehara
akanehara / c9_7.ml
Last active August 29, 2015 14:06
血液型がAの人物の数を返す関数 count_ketsueki_A
(* 日付を表現するレコード *)
type date_t = {
month: int;
day: int;
}
(* 人物を表現するレコード *)
type person_t = {
height: float;
weight: float;
@akanehara
akanehara / c9_8.ml
Last active August 29, 2015 14:06
乙女座の人の名前のみからなるリストを返す関数
(* 日付を表現するレコード *)
type date_t = {
month: int;
day: int;
}
(* 人物を表現するレコード *)
type person_t = {
name: string;
height: float;
@akanehara
akanehara / c9_6t.ml
Created September 25, 2014 13:32
末尾再帰 concat の2引数を組にしたもの
(* 目的: リストで与えられた文字列を連結する *)
let rec concat xs =
match xs with
[] -> ""
| first :: rest -> first ^ concat rest;;
(* 末尾再帰版の2つの引数を組にしたもの *)
(* インタプリタ上で #trace concat2;; してから実行してみましょう *)
let rec concat2 (xs, out) =
match xs with
@akanehara
akanehara / c0.md
Last active December 14, 2017 17:42
『プログラミングの基礎』社内読書会 #0

#『プログラミングの基礎』社内読書会 #0

処理系のインストール

Mac, Linux

@akanehara
akanehara / c10.md
Last active August 29, 2015 14:07
『プログラミングの基礎』読書会 10. 再帰関数を使ったプログラミング

『プログラミングの基礎』読書会

10. 再帰関数を使ったプログラミング

10.1 関数のネスト

接頭語を返す関数 prefix を補助関数 add_to_each を使って作る

接頭語

@akanehara
akanehara / fabric-vagrant.md
Last active August 29, 2015 14:08
Fabric と fabric-vagrant プラグインの導入

Fabric と fabric-vagrant プラグインの導入

仮想サーバーのプロビジョニングにPython製の Fabric というツールを使います。Pythonを常用していない人は次の手順でPythonならびにFabricを導入してください。

Fabricの日本語ドキュメント

Pythonの導入

(* 指定されたリストから指定された数の倍数をとりのぞく *)
(* ignore_multiple : int -> int list -> int list *)
let rec ignore_multiple n ns =
match ns with
[] -> []
| m :: ms -> if m mod n = 0
then ignore_multiple n ms
else m :: ignore_multiple n ms
(* range : int -> int list *)
#use "metro.ml"
(* グラフの中の節(駅)を表す型 *)
type eki_t = {
namae : string; (* 駅名(漢字) *)
saitan_kyori : float; (* 最短距離 *)
temae_list : string list; (* 手前の駅名(漢字)のリスト *)
}
let make_eki_list ekimei =
@akanehara
akanehara / ssh-test.sh
Created April 10, 2015 06:02
Usage: ./ssh-test.sh <ssh_config_file>
#!/bin/bash
for h in `grep '^Host\s.*' $1 | awk '{print $2}'`; do
if ssh -F $1 $h :
then
echo $h " - CONNECTED!"
else
echo $h " - FAILED!"
fi
done