読者です 読者をやめる 読者になる 読者になる

Haxe 2 から 3 へ

Haxe のバージョンを 2.10 から 3.0.0 に更新した。 Haxe 2 の時のコードが結構動かなくなったので、変更点をメモ。 interface 継承の変更 implements -> extends haxe 2 interface Hoge {} interface Piyo implements Hoge {} haxe 3 interface Hoge {} int…

prototype でつけた関数をファーストクラスで使うと this がしぬ

はまりかけた。 コンストラクタで設定すればおk。 function Hoge() { var me = this; me.print1 = function() { console.log(me); }; } Hoge.prototype.print2 = function() { console.log(this); } var hoge = new Hoge(); hoge.print1(); // Hoge {print1…

型パラメータとミックスイン

Mix.hx interface A {} interface B {} class C implements A, implements B { public function new() {} } class Mix { public static function hoge(x: A) {} public static function piyo(x: B) {} } Hoge.hx using Mix; class Hoge { public static func…

構造体と型

typedef X = { id: Int, name: String } class Hoge { public static function hoge(x: X) {} public static function main() { hoge({ id: 0 }); } }これはエラー。 $ haxe hoge.hxml Hoge.hx:5: characters 7-16 : { id : Int } has no field name Hoge.hx…

関数の型

var f: Int -> Int -> Int = function(a, b) { return a + b; }; var g: Int -> (Int -> Int) = function(a) { return function(b) { return a + b; }; }; var h: (Int -> Int) -> Int = function(f) { return 0; };えー。

type 演算子?

プログラム中のどこでも,ある表現の型を知るためには,type 演算子を使うことができます。コンパイル時に,type 演算子は除去され,表現だけが残ります : var x : Int = type(0);この例ではコンパイル時に Int と表示され,type が使われなかった場合と同じ…

Haxe

仕事で Haxe を使うようになったので、はまったとこなどのメモを少し残しておく。 使っているバージョンは 2.10 で、JS 吐き出し用。

今のバージョンでYesodアプリを動かすまで

なんかうまく動かなくなってたので、メモ。 まずは、Haskell Platform を確認。 気がついたら64bitが入っていた。 多分 2012.4.0.0 にするときに誤って入れたらしい。 一旦今の Haskell 環境を消して、 $ sudo /Library/Haskell/bin/uninstall-hs --remove t…

同じようなフィールドを持ったレコードへの変換

RecordWildCards を使って、同じようなフィールドを持つレコードを簡単に変換できる。 RecordA.hs module RecordA where data A = A { a :: Int, b :: String, c :: Int } deriving Show RecordB.hs module RecordB where data B = B { a :: Int, b :: Strin…

Haskellの言語拡張たち 2

前のやつ の続き。 今回調べた拡張 レコード系 RecordWildCards 型系 ExistentialQuantification RecordWildCards レコードワイルドカードが使える。 レコードパターン中で .. とすれば、レコード内のフィールドを一気に束縛したり、現在のスコープの変数か…

一部の値を変更したレコード

Database.Persist.MySQLの設定を調べていて、こんな記述を発見。 defaultConnectInfo :: ConnectInfo Default information for setting up a connection. (中略) Use as in the following example: connect defaultConnectInfo { connectHost = "db.example.…

Haskellの言語拡張たち

前回、なんか拡張を沢山使っていたが、おまじないのままなのもそろそろまずい感じなので、とりあえず調べてみた。 今回調べた拡張 型系 GADTs ScopedTypeVariables EmptyDataDecls TypeFamilies 型クラス系 MultiParamTypeClasses TypeSynonymInstances Flex…

Haskell で DB操作

最近 Yesod を弄っているが、Yesod で使ってるやつ (Database.Persistent) を使って、普通に DB 操作したいな、と。 sqlite と mongodb をやってみる。github にあげた分 → https://github.com/rf0444/haskell-dbとりあえず自分の環境 (Mac) で runhaskell …

Git 導入

家のデスクトップに入れてた Git を新しくしようと思って、ついでに入れ方を残しておこうと思って、書いてみる。 OS は Windows 7。多分 XP でも大丈夫。 cygwin とかは入ってない想定。7z は入ってる想定。 入ってた Git を削除 前入れたときはインストーラ…

The End of Start Haskell

1/28 に、第6回 スタートHaskell に行ってきました!また1週間かかってしまった・・・遅延評価だから仕方がない (キリッ 12章 遅延評価 解説 @imsuten http://www.intransient.info/materials/Programming_in_Haskell_12/Programming_in_Haskell_12.html5.html#…

Purely Functional Data Structures読書会 第4回

1/21 に、Purely Functional Data Structures読書会 第4回 に行ってきました。 まとめ的な: http://wiki.haskell.jp/Workshop/ReadPFDS/4 3.4 (c) (d) @khibino 前回末尾再帰になっていなかったから、CPS変換して末尾再帰にしたらしい。 なんかいきなり継続…

Purely Functional Data Structures読書会 第3回

12/17 に、Purely Functional Data Structures読書会 第3回 に行ってきました。 開始前 Mac (Lion) のデスクトップ増やす: Mission Control から カーソルを右上の方にやると「+」が出てくる。 押すと増える。 Lion から操作が変わった部分は、わりと前から…

第5回 スタートHaskell

12/5 に、第5回 スタートHaskell に行ってきました! 会社の先輩 (@seizans) に誘われて、久しぶりの勉強会 & 初スタートHaskell! 前日 本の中身をざっくりみた後、演習をやっておこうとした。 環境をみてみると、Haskell Platform 入れてなくて、 Mac Por…

9月

9月になったので本気出す。 まだ仕事本配属になってないけど、来週なる予定。 来週から本格的に仕事が始まるお。

MacBook Air 13インチ買った!

PC

買いました。初 Mac。 まだ開けてないけど、明日いろいろ弄ったりしよう。

気がついたら・・・

7月も終わりかけ・・・ 6月何も書いてない・・・ あ、そういえば誕生日過ぎましたw (今月頭)

わんくま東京勉強会 #59

5/28 に、わんくま東京勉強会 #59に参加してきました。 中身はもうちょっとしたらきっと書きます。(`・ω・´)

4月は・・・

いっぱいはたらいてました。 研修だけど。

リリカル合宿

3/5〜6 に、リリカル合宿に参加してきました! 朝 7時に電車乗って、開場よりちょっと前に到着。喫茶店でティラミス食べた。 F#について (bleis) → コンピューテーション式 (bleis → mzp) → モナドについて (mzp) → Coq について + option がモナドであるこ…

3月

もう3月か・・・ ここんとこ研究ばっかであまり書けなかったな・・・ というか、12月末に研究テーマ決まる(しかも変わった)とかあり得ないだろjk・・・ まぁ何とかなったけど。 論文も提出できたし、結果待ちだが多分大丈夫。 もうすぐ東京住まいか。新生活…

第14回名古屋Scala

1/21 に、第14回名古屋Scala勉強会に参加してきました。 今回はコメントがなかったので、本の中身を追っていく感じに。 29章 Scala と Java の結合 akka Scala からも Java からも使える、Scala のアクタを書き換えた的なやつ アノテーション 2.8 から、Scal…

MacBook Air 11インチ欲しい!

MacBook Air 11インチ欲しい!調べてたら欲しくなった。MacBook Air 11インチ欲しい!

NGK忘年会2010

12/ 4 に、NGK忘年会2010 に参加してきました。 UST http://www.ustream.tv/recorded/11239442 ラーメン食ったり、Mac見てたりして少し遅れた・・・ メモ取れたところから。 イベント・コミュニティの話 勉強したいことがあったら勉強会をひらいてみる 続け…

Coq Party

11/27 に、Coq Partyに参加してきました。 資料などはこちら。 エンジニア・ミーツ・Coq すぐ分かる形式手法 形式手法とは? 品質の高いソフトウェアを作るための科学的な仕様記述・検証手法 仕様化の正しさは終盤のシステムテストまで分からない 結合テスト…

けんろん!〜休日カフェタイム〜 第2話演習!

11/21 に、けんろん!〜休日カフェタイム〜 第2話演習! に参加してきました。 USTREAM 第1話 http://www.ustream.tv/recorded/10255923 (前半) http://www.ustream.tv/recorded/10256470 (後半) 第2話 http://www.ustream.tv/recorded/10995206 (前半) http…

第13回名古屋Scala

11/19 に、第13回名古屋Scala勉強会に参加してきました。 27章 オブジェクトを使ったモジュラープログラミング モジュールとしてオブジェクトを捉える Lift とかそうなってる OCaml の(ファーストクラス)モジュールに近い 継承とかも出来る DI 結構普通、そ…

GitとGitHubを体験しながら身につける勉強会 第2回

10/30 に、GitとGitHubを体験しながら身につける勉強会 第2回 に参加してきました。 始まる前に、bleis と F# の GUI まわりって Functional ちっくに書けたりするっぽいねとか、 そういうことは osiire さんが詳しいよとか話してたら、なんとご本人登場。 …

Boost.勉強会 #3 関西

10/23に、Boost.勉強会 #3 関西に行ってきました。 千里中央駅からが分かりにくい・・・>< 10時ちょっと過ぎに到着・・・ まとめかメモかなんかそういう 発表資料が遅延評価されたらしく、順番が少し前後 「C++かわいい。」 OAuth めんどいらしい D はとて…

Jaav っぽいの

なんか bleis 先生が関数型っぽいライブラリを Java で作ってるっぽくて、自分も作ってみようかなーって適当に作ってたらとても残念な感じになったのでのっけてみる。 コードは rf0444's jaav at master - GitHub に。 よくもこんなキチ(ry まずは Function …

わんくま名古屋勉強会#15

10/16 に、わんくま名古屋勉強会 #15に参加してきました。 C++かわいい。λかわいい。 VBにパターンマッチはないらしい。(C++にもない?) 懇親会で、bleis 先生が Java で Jaav っていうライブラリ作ってるって言ってた。 (パターンマッチは少しあるらしい)

第12回名古屋Scala

10/15 に、第12回名古屋Scala勉強会に参加してきました。 24章 抽出子 Haskell に View Pattern ってのがある リスト 24.1 これはひどい Scalaである意味がない。split後なにやってるか分からない パターンマッチ素敵 なにやってるかとてもよく分かる => (Sc…

名古屋Hackathon

10/9に名古屋Hackathon - ラムダ村に参加しました。 自分は Coq 組で参加。Coq to Scala をやってた。 Coq 組の朝は遅い。にわとりなのに。 環境構築に時間かかってた。make 長い・・・ 最初は Scheme や Haskell のを修正していく感じだったけど、読むだけ…

reflexivityつおい

Require Import List. Theorem sum_10_eq_55 : fold_left (fun y x => y + x) (seq 1 10) 0 = 55. Proof. reflexivity. Qed.ぅゎ、reflexivity っぉぃ。

練習リポ

Coq で練習してたファイルたちを github で管理。 rf0444's coq

GitとGitHubを体験しながら身につける勉強会

9/18 に、GitとGitHubを体験しながら身につける勉強会に参加してきました。 USBメモリにぶち込んだ Ubuntu の初実践(?)。 merge とか使わない。rebase 使う。 (by bleis) .bashrc の PS1 に $(__git_ps) で現在のブランチを表示できる 自分の .bashrc もこん…

第11回名古屋Scala

9/17 に、第11回名古屋Scala勉強会に参加してきました。 今回は23章と24章の予定だったけど、盛り上がったので24章は次回に。 23章 for 式の再説 モナド (1) bind : M[A] => (A => M[B]) => M[B] 最初の M[A] がレシーバ (Scala) return : A => M[A] この 2 …

続・Coqりさん Q.E.D.

Coqりさん 証明のかけら の続き (再挑戦)。 Require Import Arith. Fixpoint fib1 n:nat := match n with | 0 => 0 | 1 => 1 | S (S m as p) => fib1 p + fib1 m end. Fixpoint fib2 n a b:nat := match n with | 0 => a | S n => fib2 n b (a + b) end. Lem…

SKK とか

K I = F と、S K K = I を証明してみる。 Definition I {A:Type} x:A := x. Definition K {A B:Type} (x:A) (y:B) := x. Definition F {A B:Type} (x:A) (y:B) := y. Definition S {A B C:Type} (x:A->B->C) (y:A->B) (z:A) := x z (y z). Theorem ki_f : fo…

第1回 Scala座

9/4 に、第1回 Scala座に行ってきました。 資料などはこちら。Ustream はこちら。 開会の挨拶 Scala座 全国レベルのScalaの勉強会! 大きなイベントは関東が多い 悔しい! → 名古屋で開催! これまでのScala、これからのScala これまで編 Scalaって JVM上で…

|> in Scala

F# の |> を Scala でやってみた。 scala> class Holder[A](a:A) { | def |>[B](f:A => B) = f(a) | } defined class Holder scala> implicit def any2holder[A](a:A) = new Holder(a) any2holder: [A](a: A)Holder[A] scala> val succ = (x:Int) => x + 1 s…

メモ晒し

Coq

自分の Coq メモを晒してみる。 ■ ; について T1 ; T2 T1 適用後、T1 によって出来た全てのサブゴールに対して T2 を適用 T1 ; [T2 | T3] T1 適用後、T1 によって出来たサブゴール a, b に対して、a に T2、b に T3 を適用 (不要なら T2, T3 を省略可(何もし…

Coq庵

8/29 に、Coq庵 に行ってきました。 資料等はこちら。 行き道で祭りやってた。 一部道が通れなかったりして、少し迷うなど。 初めてのCoq 仕様記述言語 Prolog ACL2, HOL/Light 完全自動証明 自動で証明してくれるが、表現力がやや低い Isabelle/HOL, Coq, A…

OCaml Meeting 2010 in Nagoya

8/28 に、OCaml Meeting 2010 in Nagoya に行ってきました。 朝早く起きて名古屋大学へ。 暑い・・・ やってみようOCaml / Walk with OCaml OCamlの基礎についてのお話 会場の人の殆どはOCamlでプログラムを書いたことがあるみたい haXeって言語がある Flash…

矛盾

楚人に盾と矛とを鬻(ひさ)ぐ者有り。之(これ)を誉めて(ほめて)曰く「吾が盾の堅きこと、能く(よく)陥す(とほす)もの莫し(なし)」と。また、その矛をほめていはく、「わが矛の利なること、物において陥(とほ)さざることなきなり。」と。あるひ…

買った本

学校の売店に注文してた本が届いたそうなのでもらってきた。 Emacsの本 Emacsテクニックバイブル ?作業効率をカイゼンする200の技?作者: るびきち出版社/メーカー: 技術評論社発売日: 2010/08/03メディア: 単行本(ソフトカバー)購入: 26人 クリック: 1,031…