Gitてきとうにマジメに始めました。とりあえずcommitとpushとpull使うだけなら前からやってたけど、もう少しマジメに。
しかしmergeとrebaseの使い分けはどうすればいいんだ…気分?
Gitてきとうにマジメに始めました。とりあえずcommitとpushとpull使うだけなら前からやってたけど、もう少しマジメに。
しかしmergeとrebaseの使い分けはどうすればいいんだ…気分?
Mavericksにしたい。する余裕がないというかアップデート怖い。セキュリティ的には現状維持も怖い。来年までには作業したい。
ちまちまRationale読んでましたが、折角incomplete typeがgenericの引数に取れるようになったのにAda.Containersは相変わらず
type Element is private;
とか
type Element (<>) is private;
で役立たずなんですが…サイズ確定しないからしょうがないのかな…でもindefiniteの方はサイズ不定だよな…なんか理由があるのでしょう、多分。
読んでいた時は一人で某外人4コマをやったような気分でした。
まぁgcc 4.8.2だとそもそも引数に渡す時点でエラーになるのでどうしようもなかったりします。
2012がデフォルトになるらしい4.9系列ではきっと上手くやってくれるでしょう。きっと。
艦これ楽しいです。
システムとしてはもうちょっと轟沈しやすいとロスト確率が高くなった時の絶望感が程よいと思いますが、マップのキツさとリアルラックの影響力の強さを考えるとこれ以上轟沈しやすいと面倒かとも思ったり。
個人的な欲を言えば、提督が沈めた責任を感じられる程度の選択が出来るとさらにいいですね。
現状だと進軍/撤退だけなので、中破した艦の撤退のために囮を使うとか。で、中破艦の撤退自体は成功するけど囮が集中砲火受けて轟沈、で凹みたい。何言ってんだこいつ。
…ともかく、コレクションやらリスク背負った戦闘やらは非常に楽しいのですが、ステージも多くないしそんなに焦ってやるものでもないかな、と、最近思い至りました。イベント以外。*1
というわけで最近は更新も追いかけてなくて(下手するとログインもしてなくて)何がどうなってるのか全く分かってなかったり。
*1:ちなみに秋イベントは武蔵までは行きましたがそれ以降は放棄
色々疲れたので現実逃避。
「関数プログラミングの楽しみ」という本がありまして。*1
なし
悪い
悪い
仕様。無駄にgeneric。
pragma Ada_12; generic type Index_Type is (<>); type Element_Type is private; type Array_Type is array (Index_Type range <>) of Element_Type; package Origami is generic type Result_Type is private; function Fold_R (F : access function (E : Element_Type; SoFar : Result_Type) return Result_Type; I : Result_Type; S : Array_Type) return Result_Type; generic type Input_Type is private; with function "&"(Left, Right : Array_Type) return Array_Type is <>; function Unfold_R (End_Of_Input : access function (I : Input_Type) return Boolean; Element : access function (I : Input_Type) return Element_Type; Renew_Input : access function (I : Input_Type) return Input_Type; Input : Input_Type) return Array_Type; end Origami;
A'Length=0な配列Aの簡単な書き方が分からなくて右往左往。
pragma Ada_12; package body Origami is function Unfold_R (End_Of_Input : access function (I : Input_Type) return Boolean; Element : access function (I : Input_Type) return Element_Type; Renew_Input : access function (I : Input_Type) return Input_Type; Input : Input_Type) return Array_Type is (if End_Of_Input(Input) then (Index_Type'Succ(Index_Type'First)..Index_Type'First => <>) else Array_Type'(Index_Type'First=>Element(Input)) & Unfold_R(End_Of_Input, Element, Renew_Input, Renew_Input(Input))); function Fold_R(F : access function (E : Element_Type; SoFar : Result_Type) return Result_Type; I : Result_Type; S : Array_Type) return Result_Type is (if S'Length=0 then I else F(S(S'First), Fold_R(F, I, S(Index_Type'Succ(S'First) .. S'Last)))); end Origami;
pragma Ada_12; with Ada.Text_Io; with Origami; procedure Origami_Test is type Nat_Arr is array(Positive range <>) of Natural; package O is new Origami (Index_Type => Positive, Element_Type => Natural, Array_Type => Nat_Arr); function Eq_0 (N : Natural) return Boolean is (N = 0); function Mod_2 (N : Natural) return Natural is (N mod 2); function Div_2 (N : Natural) return Natural is (N / 2); function G is new O.Unfold_R(Input_Type => Natural); A : Nat_Arr := G(Eq_0'Access, Mod_2'Access, Div_2'Access, Natural'Value(Ada.Text_Io.Get_Line)); function F is new O.Fold_R(Result_Type => Natural); function Mul (E : Natural; SoFar : Natural) return Natural is (SoFar*2+E); begin for E of reverse A loop Ada.Text_Io.Put(E'Img); end loop; Ada.Text_Io.New_Line; Ada.Text_Io.Put_Line(Natural'Image(F(Mul'Access,0,A))); end Origami_Test;
123456 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 123456
しかし実際無駄な。
あ、あとそろそろHaskellもちゃんとやりたい。