Hatena::ブログ(Diary)

断章10100

2014/08/12

A Tour of Go の 1/72 - 41/72 進めた

| 22:09 | A Tour of Go の 1/72 - 41/72 進めたを含むブックマーク A Tour of Go の 1/72 - 41/72 進めたのブックマークコメント

OCaml とか触ってたけど、 GAEGolangアプリ試してみたいなと思って Golang に手を出した。

とりあえず A Tour of Go を途中の 41/72 まで進めてみた。

個人的には #10 Named results戻り値パラメータとして戻り値に名前を付けてコード上で代入できてしまうのが面白かった。

map の要素の削除が delete(m, key) なのかとか。 m.Delete(key) とか m.Remove(key) とかはないんだなーと。

基本型だからないのかなと。

残りもゆるゆると進めたい。

トラックバック - http://d.hatena.ne.jp/naka-06_18/20140812

2014/07/22

トラックバック - http://d.hatena.ne.jp/naka-06_18/20140722

2014/07/21

OCaml と末尾再帰

| 14:17 | OCaml と末尾再帰を含むブックマーク OCaml と末尾再帰のブックマークコメント

末尾再帰とは各再帰処理で、計算結果と再帰処理を行い、再帰の末端ですぐ計算結果を返せる状態になっていること。

続きを読む

トラックバック - http://d.hatena.ne.jp/naka-06_18/20140721

2014/06/28

Vim のソースビルド、セットアップ手順

21:59 | Vim のソースビルド、セットアップ手順を含むブックマーク Vim のソースビルド、セットアップ手順のブックマークコメント

vim gtk2版gvimビルドして、 /opt/vim/<tag> にインストール、 neobundle のセットアップを行う。

環境

Ubuntu 14.04 LTS x86_64

1. 必要なソフトウェアの事前インストール

$ sudo apt-get build-dep vim
$ sudo apt-get install \
  libxmu-dev libgtk2.0-dev libxpm-dev \
  libperl-dev python-dev python3-dev ruby-dev \
  lua5.2 liblua5.2-dev luajit libluajit-5.1

2. ソースの取得、ビルドインストール

$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim
$ hg tags | less  # 現在有効なタグを出力する。
$ sudo mkdir -p /opt/vim/<tag>
$ hg up -r <tag>  # いずれかのタグにアップデートする。
$ ./configure \
  --prefix="/opt/vim/<tag>" \
  --with-features=huge --enable-gui=gtk2 \
  --enable-perlinterp --enable-pythoninterp \
  --enable-python3interp --enable-rubyinterp \
  --enable-luainterp --with-luajit \
  --enable-fail-if-missing
$ make -j 3       # 2コアだったので。
$ sudo make install

3. 環境変数の整備

以下の環境変数を profile などで設定する。

_vim="/opt/vim/<tag>"
export VIM="$_vim/bin"
export VIMRUNTIME="$_vim/share/vim/vim74/"  # vim のバージョンに合わせて読み替えること。
export PATH="$VIM:$PATH"
unset _vim

4. neobundle.vimインストール

$ mkdir -p ~/.vim/bundle
$ git clone github.com:Shougo/neobundle.vim.git ~/.vim/bundle/neobundle.vim

参照

トラックバック - http://d.hatena.ne.jp/naka-06_18/20140628

2014/06/06

emacs の cmmi / cask + pallet のインストール / evil のインストール

21:34 | emacs の cmmi / cask + pallet のインストール / evil のインストールを含むブックマーク emacs の cmmi / cask + pallet のインストール / evil のインストールのブックマークコメント

環境

1. cmmi (configure / make / make install)

まずは cmmi でシステムの /opt/emacs/24.3 に emacs 24.3 をインストールします。

1. 最初に依存関係を解消しておきます。

$ sudo apt-get install build-essential
$ sudo apt-get build-dep emacs23
$ sudo apt-get install libmagickwand-dev libselinux1-dev libgnutls-dev libxml2-dev

2. ソースをローカルに取得します。

$ wget ftp://ftp.riken.jp/GNU/gnu/emacs/emacs-24.3.tar.xz
$ tar xf emacs-24.3.tar.xz

3. configure します。 /opt/emacs/24.3 配下にインストールしたいので、 prefix で指定しています。

$ cd emacs-24.3
$ sudo mkdir -p /opt/emacs/24.3
$ ./configure --prefix="/opt/emacs/24.3"

4. make, make install

$ make
$ sudo make install
$ export PATH="/opt/emacs/24.3/bin:$PATH"
$ hash -r

5. PATH を通します。 .bashrc などに以下を追加します。

export PATH="/opt/emacs/24.3/bin:$PATH"

2. cask + pallet

次に、 cask と pallet をインストールし、パッケージ管理の仕組みを組み上げます。

1. cask をインストールします。

$ curl -fsSkL https://raw.github.com/cask/cask/master/go | python

2. .bashrc などに以下を追加します。

export PATH="/home/tomohiro/.cask/bin:$PATH"

3. cask を初期化します。

$ export PATH="/home/tomohiro/.cask/bin:$PATH"
$ hash -r
$ cask upgrade-cask
$ cd ~/.emacs.d
$ cask init

4. 作成されたCaskファイルの末尾に以下を追記します。

(depends-on "pallet")

5. pallet をインストールします。

$ cask install

6. ~/.emacs.d/init.el の末尾に以下を追記します。

(require 'cask "~/.cask/cask.el")
(cask-initialize)
(require 'pallet)

3. evil

最後に evil をインストールします。

1. 最初に ~/.emacs.d に移動します。

$ cd ~/.emacs.d

2. Cask ファイルの末尾に以下を追記します。

(depends-on "evil")

3. evil をインストールします。

$ cask install

4. emacs に evil を認識させるため、 ~/.emacs.d/init.el の末尾に以下を追記します。

(require 'evil)
(evil-mode 1)

X. 参考

Y. 履歴

1. cmmi が configure / make / make install であることを記載

トラックバック - http://d.hatena.ne.jp/naka-06_18/20140606