タグ

applicativeに関するsomemoのブックマーク (2)

  • Haskellでインベーダーゲームを作ってみた - a_kawashiroのブログ

    夏休みがあまりに暇なのでインベーダーゲームまがいの物を作ってみました。 ゲーム全体の状態を持つ変数をIORefで包み 一定時間毎に更新することでゲームの状態を変更・保持しています。 (IORefを使うとIOモナドの中で変数が更新できます。(実はよく分かってないのですが…)) 基的な四角形の描画、テクスチャの貼り付けは↓のコピペです。 HaskellとOpenGLを使って四角形を描画しテクスチャを貼り付ける - 春まで冬眠します スクリーンショット↓ import Graphics.UI.GLUT hiding (Bitmap) import qualified Graphics.Rendering.OpenGL.GL as GL import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) ) import Data.

    Haskellでインベーダーゲームを作ってみた - a_kawashiroのブログ
  • QAで学ぶMonad - あどけない話

    この記事は、Monad でつまづいた Haskeller のための Monad 再入門です。 Monadとは何ですか? Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。 この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a つまり、以下を満たす型の集合が Monad です。 m a で表現できるように一つの型変数を格納するコンテナ型 >>= と return を実装 return は新しいコンテナを作り、>>= は二つのコンテナを合成します。 Monad のインスタンスは失敗系と状態系に大別できます。以下に代表的なインスタンスを示します。 失敗系: Maybe、[] (リスト)

    QAで学ぶMonad - あどけない話
  • 1