Haskell

HaskellでのSDLの使い方

SDLのHaskellバインディングはいくつかありますが、この記事ではHackageのSDLを使って説明しています。Windows環境だとCabalではうまく入らなかったりするので、直接ソースからビルドする必要があるかもしれません。 SDLを使うにはFFIが必要 SDLを使ったHask…

Haskellでシューティングゲームを作ったまとめ

ゲーム製作者コミュニティ in 札幌の春のシューティング祭りプロジェクトで一ヶ月ほどかけて簡単なシューティングを作りました。 Windowsバイナリは紹介ページ、ソースはHackageから落とせます。ビルドにはSDLが必要です。また、絵と音楽はそれぞれコミュニ…

CabalによるHackageへのアップロードとSetup.hsの使い方

CabalでHackageにパッケージを上げたのでやり方をまとめておきます。 0.Hackageのアカウントを用意する Hackageはダウンロードなら誰にでも出来るようになっていますが、アップロードするにはアカウントが必要になります。説明を読んで、ross@soi.city.ac.uk…

HaskellでFizzBuzzやってみた

Twitter見てたらFizzBuzzの話題が流れてたので書いてみた。最初に考えたのがこれ。引数 n 以下のFizzBuzzを文字列にして返す再帰関数を定義した。 fizzbuzz 1 = "1" fizzbuzz n = fizzbuzz (n - 1) ++ " " ++ case (mod n 3, mod n 5) of (0, 0) -> "FizzBuz…

Haskellでクイックソート

Haskellに限らず関数型言語の紹介では、プログラムの簡潔さを表すのにクイックソートがよく使われます。Haskellでクイックソートを書くとこんな風になります。 --qsort.hs qsort [] = [] qsort (x:xs) = qsort [y | y <- xs, y < x] ++ [x] ++ qsort [y | y …

Haskell始めました

Haskellは前に少しだけ触ったことがあるのですが、ちゃんと使ってみようという気になりもう一度勉強を始めました。とりあえず有名処理系のGHCをダウンロードしようとしたところ、ダウンロードページにHaskell Platformでライブラリと一緒に入れたほうがいい…