Haskellっぽいfizzbuzz書けた!
- 2008-07-28
- カテゴリ: その他のプログラミング
- タグ: Haskell 入門 関数志向
昨晩、突然ひらめいてHaskellでfizzbuzzを書いてみた。
fizzbuzz :: Integer -> Integer -> [String]
fizzbuzz x y | x > y = []
| (mod x 15) == 0 = "FizzBuzz" : fizzbuzz (x + 1) y
| (mod x 3) == 0 = "Fizz" : fizzbuzz (x + 1) y
| (mod x 5) == 0 = "Buzz" : fizzbuzz (x + 1) y
| otherwise = (show x) : fizzbuzz (x + 1) y
なんかすごくHaskellっぽいコードを書けたような気がするんだけどどうだろう?少なくとも、依然書いた↓のfizzbuzzよりは手続き色が抜けてるんじゃないかな?
XREAでMTOS (Movable Type Open Source)を導入してみた
- 2008-04-10
- カテゴリ: その他のプログラミング
- タグ:
XREAのサーバーにMovable Typeを導入するというのは何回もやってきたことなのだが、今回はSSHを使ってやってみた。シェルをほとんど使ったことがなかったから苦戦したが、以前よりもかなり早く導入できるようになった。
今までは、シェルを知らなかったから、↓のようなすごく非効率的なことをやっていた。
- MTOSのダウンロードページからZIPをダウンロードする。
- ZIPを展開
- FTPでアップロード (2000ファイル近くある上に、しばしば失敗する)
- ちまちまと権限を設定
今回はXREAのサーバーにSSHで接続してやってみた。
[Java] こういうときどうすればいいの?
- 2008-03-25
- カテゴリ: その他のプログラミング
- タグ: 安易な発想 Java Haskell
例えば、数値を分数のまま四則演算する有理数クラスが↓のようになっていたとします。
public class Rational {
private int numerator = 0;
private int denominator = 1;
public Rational(int numerator, int denominator) { ... }
public Rational add(Rational x) { ... }
public Rational subtract(Rational x) { ... }
public Rational multiply(Rational x) { ... }
public Rational divide(Rational x) { ... }
}
当然、このクラスを使う側では↓のようなコードを書くわけですね。
Rational add(Rational x, Rational y) {
return x.add(y);
}
20年の眠りを醒ましてしまったようだ
- 2008-03-17
- カテゴリ: その他のプログラミング
- タグ:
コンパイラ関係の本を読んで勉強したくて、大学の図書館で探してみた。
とはいうものの、文系単科大学の図書館だからコンパイラ関係の本など探してもほとんどない。
やっとの思いで見つけたのが↓。
1981年刊行とのことだったが、とりあえず借りてみた。
↓貸出期限票を見たところ、俺は20年の眠りを醒ましてしまったらしい。

しかし、目次を見てみると、用語や内容は現在と大きくは変わらないっぽい。言語処理系の本は古い本ほど良いという話は本当だったんだな。
TeXで新しいフォントを使うためのバッチファイル
- 2008-02-28
- カテゴリ: その他のプログラミング
- タグ: Tips TeX LaTeX バッチ
TeXでアームド・レモンというフォントを使えるようにするために使ったバッチファイルをメモ。アームド・レモンのTTFファイル(ArmedLemon.TTF)はC:\WINDOWS\Fontsにインストール済み。
@echo off set FONT=ArmedLemon set TEXDIR=C:\LaTeX set FONTDIR=%TEXDIR%\share\texmf\fonts copy "%FONTDIR%\tfm\ptex\jis.tfm" "%FONTDIR%\tfm\ptex\%FONT%.tfm" cd "%FONTDIR%\vf\ptex" "%TEXDIR%\bin\makejvf.exe" "%FONT%" "%FONT%" move "%FONT%.tfm" "%FONTDIR%\tfm\dvips" echo %FONT% H %FONT%.ttf>>"%FONTDIR%\map\dvipdfm\base\cid-x.map" "%TEXDIR%\bin\mktexlsr.exe"
PDFで表示するだけならこれだけで充分っぽい。なぜこれで充分なのかはまだわかっていない。時間と余力があるときに解説エントリを書ければいいなと思っている。
「LaTeX で多書体 --- 任意のフォントを扱う方法」というサイトを参考にした。
LaTeXで文系論文を書いてみる
- 2008-02-27
- カテゴリ: その他のプログラミング
- タグ: ○○で文系論文を書いてみる TeX LaTeX Tips 環境構築
以前、DocBookで文系論文を書いてみるというようなこと言っていたが、結局それは断念してしまった。FOPの日本語組版のレベルが低すぎて使い物にならない上に、DocBook XSLも基本的には英語圏向けであまり日本語環境に向いているとは言えなかったから。なので、結局はTeXを使ってレポートを書くことにした。今さらTeXというのも古臭い感じがして嫌なのだが、他に良い選択肢がないので仕方がない。
ということで、今度はWindows XP上にLaTeX環境を構築するにあたってのメモ書きを残しておこうと思う。
ちなみに、TeXに入門するまでの間に、86世代の人たちにだいぶお世話になった。この場を借りて感謝。
DocBookで文系論文を書いてみる 2日目
- 2008-01-11
- カテゴリ: その他のプログラミング
- タグ: ○○で文系論文を書いてみる Tips XML XSL DocBook Apache FOP Xalan
前回は、Apache FOPを入れて、簡単なXML文書をPDFにするところまでで終わった。今日は日本語フォントを導入してみようと思う。
日本語ではここのサイトが非常に参考になるが、情報がやや古い。フォントに関しては、Apache FOPのサイトの「Apache FOP: Fonts」に詳しい情報が載っているので、これを参考にした。
導入したフォント
FOPでは、XML形式のFont Metricsファイルというものを用意しないといけない。FOPにはフォントファイルからFont Metricsファイルを生成するツールが同梱されているので、それを使ってfont metricsファイルを作成する。フォント形式はType1とTrueTypeに対応しているとのこと。
DocBookで文系論文を書いてみる 1日目
- 2008-01-09
- カテゴリ: その他のプログラミング
- タグ: ○○で文系論文を書いてみる Tips XML XSL DocBook Apache FOP Xalan
twitterで何を使って卒論を書こうかと考えていたときに、DocBookが候補にあがった。そこで、DocBookについてはほとんど何も知らないし、DocBookをPDF化する環境も整っていないけど、DocBookに挑戦してみることにした。
日本語でDocBookを使うのは相当面倒らしいけど、途中で心が折れないようにがんばろう。仮に、DocBookが駄目だったとしても、XML → XSL → PDFの変換環境を作ったり、本格的にXSLを勉強しておくのは悪いことではないと思うし。
ということで、がんばってみる。
[WScript][携帯]DoCoMo F902iSでバックアップしたスケジュール表をMS Outlookが読み込めるように変換
- 2007-12-13
- カテゴリ: その他のプログラミング
- タグ: Tips 携帯 WScript vCalendar
DoCoMo F902iSからminiSDにバックアップしたvCalendar形式のスケジュール表を、MS Outlook 2003でインポートしようとしたら失敗した。
なぜか、BEGIN:VCALENDARというキーワードとEND:VCALENDARというキーワードを余計にネストしたり、SUMMARYとDESCRIPTIONを逆にしたりしているのが原因っぽい。
ということで、F902iSのvCalendarを変換してOutlookで読み込めるようにするWScriptを書いたので、メモがわりにエントリー化。詳しいことは時間と気力があるときにエントリー化したい。
おそらく、F902iS以外では使うことがないと思うが、もし他の機種でも動くようであれば、コメント欄などで教えてくれるとありがたい。

