2014-01-01から1年間の記事一覧
また遅れてしまった…オブジェクト指向 Advent Calendar11日目。 最近いろいろオブジェクト指向について調べていて、やっぱりこの概念はいかがなものか、と思ったことを軽く書く。 継承 まずこれ。オブジェクト指向において「AがBを継承している」というのは…
これはオブジェクト指向 Advent Calendar 2014の7日目の記事です。 入力によって変化する状態をうまく扱うことはプログラミングにおいて重要である。この記事では、状態や手続きを扱うさまざまなアプローチを紹介、比較する。 手続き型プログラミング 命令の…
はるアイコン鯖 Advent Calendar 2014 - Adventar ※現実で。 ※現実で。 ※現実で。 海岸 大洗磯前神社入口 絵馬 痛絵馬は西側に偏っている模様。 神社から見える水平線 石が置かれまくっている像 大洗駅内にて 大洗を3つの言葉で表すとすれば、「海」「レンガ…
Googleで適当に検索すると とズラリと出てくる。 オブジェクト指向 v.s. 関数型プログラミング 関数型とオブジェクト指向という一見相反するプログラミングパラダイムの併用について理解した プログラマが知るべき97のこと/関数型プログラミングを学ぶことの…
状態管理のモデル案: spawn/killモデルの実装を作ってみた。 worldsパッケージがそれだ(露骨な名前だが赦してほしい)。前の記事と違う点は、Worldがモナド変換子として実装されている点だけである。 worlds-exampleは画面内のキャラクターを方向キーで操作す…
生と死のあるアクターを表現するためのモデルについて考えた(あくまで個人用メモ)。 以下の型変数sは世界の一意性、閉鎖性を表す。生命や名前を勝手に外に持ち出すことを防ぐために必要。 Life m a: 生命を表す型。aは生命の最終結果。 Name s a: 生命に与え…
食材と処理 にんにく1かけをみじん切りにする。 ピーマンの実を適度な大きさに分割する。 ヤングコーン(水煮)を小穂に対し斜めに切断する。 豚の細切れ肉を用意する。 調理 フライパンを中火で熱する。 フライパンにごま油を適量入れる。 にんにくを入れて香…
あるとき、私は思った―― 「Getter、Setterと、状態を次に進める関数を持つ何かがほしい!そうすればゲームやユーザーインターフェイスなどがとても書きやすくなるのに……!」 私はそれをカラクリと名付けた。存在するかどうかわからない理想の構造を求めて… …
CPS(Continuation passing style, 継続渡しスタイル)は、関数型プログラミングにおけるプログラムの書き方の一つである。CPSを導入する簡単な例をいくつか紹介しよう。 まず、入力された数値が3の倍数かどうかを判定するプログラムを作ってみよう。 foo :: I…
パッケージをインストールするぜ!そしてさっそくghciを起動するぜ! $ cabal install lens $ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linkin…