2007-08-01から1ヶ月間の記事一覧

テンプレートエンジン

メールを送信する機能を実装する必要があって、メール本文をテンプレートファイルから生成する機能が欲しかったのでテンプレートエンジンを使う事にした。 で、テンプレートエンジンといえばNVelocityという事になるんやけど、見た感じ開発がストップ(確か0…

関数の型

Haskellには基本的な型(IntやCharなど)の他に関数の型も存在する。例えば文字列を改行で区切った配列に変換するlines関数の型は String -> [String] となる。 これは引数1の型がString、戻り値の型がStringの配列という意味になる。 関数の型宣言 Haskell…

IEnumerableでハマル

C#

C#2.0からyield return文が使えるようになったおかげで、IEnumerableを返すメソッドが記述しやすくなった。 2.0以前はIEnumerableインターフェースを実装するクラスを作って、そのインスタンスを返す必要があったのでめんどくさかった。(というか、そもそも…

リスト

Haskellではリストを以下のように記述する。 [1, 2, 3] 現段階の知識ではこれを変数に代入する方法がわからない。以下のように記述したらエラーが出た。 lst = [1, 2, 3] で、リストを利用したプログラムとしてcountlineコマンド、標準入力の行数を数えるコ…

catコマンド

お次はUnixでおなじみのcatコマンド、標準入力を画面に出力するだけのコマンドです。 main = do cs <- getContents putStr cs さぁ、わけのわからんのが出てきました。まずdo式から、これは複数のアクションをまとめる式で、まとめられたアクションは上から…

HaskellでHelloWorld

とりあえずお約束の「HelloWorld」から main = putStrLn "Hello, World" これを「hello.hs」ファイルの保存して、コマンドプロンプトで以下のコマンドを実行する。 > runghc hello.hs Hello, World これでHaskellインタープリターが起動して、スクリプトが実…

NAntビルドファイルのテンプレート

普段使っているNAntビルドファイルのテンプレートを晒してみる。 default.build - Download <project xmlns="http://nant.sf.net/release/0.85/nant.xsd" name="PROJECT_NAME" default="build" basedir="../src/PROJECT_NAME"> </project>

ファイルの文字コードを変える

ファイルの文字コードを変えるスクリプト(Change-Encoding.ps1) param( [string[]]$fileNames, [Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding]$encoding="UTF8", [string]$toEncoding="Default") if($args[0] -eq "-?") { $commandNam…

アセンブリのバージョンを取得する

アセンブリのバージョンを取得するスクリプト(Get-AssemblyVersion.ps1) param([string[]]$assemblyFiles) if($args[0] -eq "-?") { $commandName = [IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Write-Host @" 名前 $commandNa…