windowsでyesodを試そうといろいろ格闘していたのですが、どうもうまくいかないのでubuntuでやってみることにします。
yesodで失敗するのはlanguage-javascriptのバージョンが違うってエラーで、cabal install language-javascriptすると今度はalexのバージョンが3じゃねーとか言われてalexを入れようとすると失敗。
わかんないのです。
ひとまずMVWarePlayerをインストールしてubuntuのisoをダウンロードして新規仮想マシンを作成したら出来た。
簡単なんだなー。
2012年1月23日月曜日
2012年1月16日月曜日
Unityコインプッシャーにて勉強
Unityコインプッシャー
Unityのラーニングに指定されたのでさくせいしました。
Unityのラーニングに指定されたのでさくせいしました。
iPhoneゲームを20分間で作る【メダルプッシャー編】
Unity Web Player | WebPlayer
« created with Unity »
2012年1月12日木曜日
.*演算子 メンバポインタ?
http://d.hatena.ne.jp/redboltz/20120111/1326292284
をあきらさんがつぶやいているのを見て、だいぶわからなかったので調べてみました。
http://www.geocities.jp/ky_webid/cpp/language/034.html
にメンバ関数ポインタ.*演算子について書いてありました。
とにかく
まあ、なんでも
a.* がメンバにアクセスする方法で
&A::value_ がクラスの先頭からのオフセット値なんだそうでした。
まだ、途中ですが、ものすごく気持ち悪かったのが
@hudepen先生に聞いたりいろいろしていたらなんとなくわかったのですが、
先に計算されてAccess<int A::*, &A::value_>()が&A::value_を返すので
よって
また、A内から呼ぶ際は
ほんで、当のprivateに外部からアクセスする部分はまだ見てません。
をあきらさんがつぶやいているのを見て、だいぶわからなかったので調べてみました。
http://www.geocities.jp/ky_webid/cpp/language/034.html
にメンバ関数ポインタ.*演算子について書いてありました。
とにかく
struct A{ int value_; }に対して
A a; a.*&A::value_ = 20;とアクセスできることがわかりました。
まあ、なんでも
a.* がメンバにアクセスする方法で
&A::value_ がクラスの先頭からのオフセット値なんだそうでした。
まだ、途中ですが、ものすごく気持ち悪かったのが
template <class MemPtr, MemPtr p> MemPtr Access() { return p; } a.*Access<int A::*, &A::value_>() = 40;で、aのメンバではないものを呼び出しているようにしか見えませんでしたが
@hudepen先生に聞いたりいろいろしていたらなんとなくわかったのですが、
a.*(Access<int A::*, &A::value_>()) = 40;っつーことらしく、
先に計算されてAccess<int A::*, &A::value_>()が&A::value_を返すので
a.*(&A::value_ ) = 40;となるわけで問題ないですね。
よって
void A::set(int _value){ value_ = _value;}を呼び出す際は
(a.*Access<int A::*, &A::value_>())(50);です。
また、A内から呼ぶ際は
void A::call(){ (this->*&A::set)(50);}とか
void A::call(){ (this->*Access<int A::*, &A::value_>())(50) ;}となりますでしょうか。
ほんで、当のprivateに外部からアクセスする部分はまだ見てません。
2012年1月11日水曜日
遅延評価の把握
http://d.hatena.ne.jp/amachang/20061204/1165180769
こちらを参考にjavascriptで実験してみました。
random().funcObj()を引数に渡すと先にadd()が呼ばれて第二引数によってはrandom()が実行されないのを確認。
こんな感じでしょうか。
しかし、
Function.prototype.funcObj = function() { return { valueOf : this } };
これがいまいち理解出来ていなくて、連想配列としてvalueOfを誰かが自動的に呼んで、その際に関数を実行させないで、自分のオブジェクトを返すって事でいいのでしょうか。
こちらを参考にjavascriptで実験してみました。
Function.prototype.funcObj = function() { return { valueOf : this } }; var random = function() { var res = Math.random(); alert('randomL:'+res); return res; } function add(i, j) { alert('add'); if(j>0){ return i+j; } return j; } alert(add(random(), 1)); alert(add(random(), 0)); alert(add(random.funcObj(), 1)); alert(add(random.funcObj(), 0));普通にrandom()を引数に渡すとadd()の第二引数に関係なく必ずrandom()が実行されますが、
random().funcObj()を引数に渡すと先にadd()が呼ばれて第二引数によってはrandom()が実行されないのを確認。
こんな感じでしょうか。
しかし、
Function.prototype.funcObj = function() { return { valueOf : this } };
これがいまいち理解出来ていなくて、連想配列としてvalueOfを誰かが自動的に呼んで、その際に関数を実行させないで、自分のオブジェクトを返すって事でいいのでしょうか。
2011年11月28日月曜日
普通のHaskellプログラミング入門 ghc Glasgow Haskell Compiler, Version 7.2.2, stage 2 booted by GHC version 6.12.2
なにも知らなすぎるので、コンパイルできないと悩みまくる
ひとまず
import Listは
import Data.List
にする見たい。
パターンマッチの
prefixp line = pattern `isPrefixOf` line
の`isPrefixOf`はshift+7の'では、もちろん無く
`(shift+@)のほうでした。。。
ひとまず
import Listは
import Data.List
にする見たい。
パターンマッチの
prefixp line = pattern `isPrefixOf` line
の`isPrefixOf`はshift+7の'では、もちろん無く
`(shift+@)のほうでした。。。
import Systemでコンパイルエラーが出る
ふつうのHaskellプログラミングのecho.hsのところで
import System
がコンパイル通らないのでググルと
http://tnomura9.exblog.jp/14966671/
import System.Environment (getArgs)
このように記述する旨書いてありました。
ghcのバージョンのせいなのか
The Glorious Glasgow Haskell Compilation System, version 7.2.2
なにがなんだか理解していませんが、ひとまず先に進めそうです。
よくみると
import System.Environment (getArgs)
じゃなくて
import System
の代わりに
import System.Environment
でいいっぽい
本の時代から
Systemが細分化されたのかな?
import System
がコンパイル通らないのでググルと
http://tnomura9.exblog.jp/14966671/
import System.Environment (getArgs)
このように記述する旨書いてありました。
ghcのバージョンのせいなのか
The Glorious Glasgow Haskell Compilation System, version 7.2.2
なにがなんだか理解していませんが、ひとまず先に進めそうです。
よくみると
import System.Environment (getArgs)
じゃなくて
import System
の代わりに
import System.Environment
でいいっぽい
本の時代から
Systemが細分化されたのかな?
2011年11月17日木曜日
ふつうのHaskellプログラミングのUS-states.txt
US-states.txtに近いものを用意してみましたw
AK Alaska - Juneau
AL Alabama - Montgomery
AR Arkansas - Little Rock
AS American Samoa
AZ Arizona - Phoenix
CA California - Sacramento
CO Colorado - Denver
CT Connecticut - Hartford
DC District of Columbia, which is the seat of the Federal government
DE Delaware - Dover
FL Florida - Tallahassee
GA Georgia - Atlanta
GU Guam
HI Hawaii - Honolulu
IA Iowa - Des Moines
ID Idaho - Boise
IL Illinois - Springfield
IN Indiana - Indianapolis
KS Kansas - Topeka
KY Kentucky - Frankfort
LA Louisiana - Baton Rouge
MA Massachusetts - Boston
MD Maryland - Annapolis
ME Maine - Augusta
MI Michigan - Lansing
MN Minnesota - Saint Paul
MO Missouri - Jefferson City
MP Northern Mariana Islands, Commonwealth
MS Mississippi - Jackson
MT Montana - Helena
NC North Carolina - Raleigh
ND North Dakota - Bismarck
NE Nebraska - Lincoln
NH New Hampshire - Concord
NJ New Jersey - Trenton
NM New Mexico - Santa Fe
NV Nevada - Carson City
NY New York - Albany
OH Ohio - Columbus
OK Oklahoma - Oklahoma City
OR Oregon - Salem
PA Pennsylvania - Harrisburg
PR Puerto Rico, Commonwealth
RI Rhode Island - Providence
SC South Carolina - Columbia
SD South Dakota - Pierre
TN Tennessee - Nashville
TX Texas - Austin
UT Utah - Salt Lake City
VA Virginia - Richmond
VI the United States Virgin Islands
VT Vermont - Montpelier
WA Washington - Olympia
WI Wisconsin - Madison
WV West Virginia - Charleston
WY Wyoming - Cheyenne
登録:
投稿 (Atom)