標準理論とHiggsについて、一般の人に誤解なく語るには

答えがあるわけじゃないです。私も考え中です。 つまりここでは一般人に『分かりやすく』教える事を目的にしていません。ちなみに標準理論というのは現在、素粒子の理論の中でももっとも成功していると言える理論です。実験的にも非常にいろいろな検証がなさ…

OUnitで遊ぶ (2)

前回とはうって変わって、ちょっとだけassert文をどうにか出来ないかなぁという感じの方向性で作ってみました。 module type ASSERT = sig type t val cmp : (t -> t -> bool) val printer : (t -> string) end module MakeAssert(AssertType:ASSERT) : sig …

OUnitで遊ぶ

OUnitはOCamlでは関数がオーバーロード出来ないとかそういう関係で複雑な処理に対してや、パラメタライズドなテストコードが非常にコード自体が見にくくなる傾向にあります。なので遊びがてらいろいろ試してみようと思いました。 open OUnit open List let (…

TDDBC参加 メモ

TDDBCにスタッフとして参加したので、つれづれにメモ書き。 TDDBCで発表があったことの内容よりも、参加した中で考えたりしたことをちょっと書きだしておきたいと思います。Keep グリーンの安心さと同時に細かいテスト実行を伝えられたのは大きかった。 最後…

実用期を迎えた関数プログラミング 参加レポート

実用期を迎えた関数プログラミング 最新動向と今後の展望 - http://atnd.org/events/27376「実用期を迎えた関数プログラミング」参加してきました。福岡では関数プログラミングの勉強会は少ないので、福岡で関数プログラミングのお話が聞けるというのは非常…

「ダニエル・カーネマン 心理と経済を語る」の感想(2)

前回の続き。今回は第一章を読んでみたまとめと感想を書きます。 第一章 ノーベル賞記念講演 限定合理性の地図 知覚表象 感覚表象とも。人間が感じる様々な感覚が脳の連合野で分析的に統合されたのもの。 例えば、「重い」という感覚は、皮膚への強い圧力と…

「ダニエル・カーネマン 心理と経済を語る」の感想(1)

今「ダニエル・カーネマン 心理と経済を語る」という本を読んでいるので、感想を書きつつ読んだところで気になったことを軽くまとめておこうと思います。今回は監訳者解説で気になった用語や事柄をまとめておきます。 監訳者解説 カーネマンの行動経済学での…

Relaxed value restriction (2. covariant と relaxed value restriction)

前回の続きです。Value restrictionによって let x = fst ([], ()) val x : '_a list = [] となってしまっていた。うん、非常に残念。これは別に多相的にあつかってもいいはず。 Relaxed value restriction ここで、Relaxed value restriction。 これはValue…

Relaxed value restriction (1. let polymorphism と value restriction)

皆さん、いかがお過ごしでしょうか。楽しいOCamlライフ送ってますか?私は紆余曲折あって「なぜだ・・・なぜ自分が使っている型システムすら知らないんだ!?」ということで、OCamlの型システムを勉強しようと思ってます。そのあたりで論理学の知識がどうし…

Macにsml#入れたったー(というログ)

sml#入れました。とりあえず、ML系の言語は拡張のされ方だったりが非常に面白い(というかたまに風変わり)だったりするので、興味があります。なのでsml#も少しばかし試してみようと思ってインストールしてみました。で、そのログです。この通りやれば絶対…

私の貧弱なOCaml力を晒す 第七回 「#variant <パターンマッチ、できるんだぜ」

ヴァリアントってパターンマッチできるんですねー、なんて言ったら流石に初心者すぎるかも知れませんが、次のようなパターンマッチが可能なことは知りませんでした。 # type myvariant = [`A | `B];; type myvariant = [ `A | `B ] # let f x = match x with…

私の貧弱なOCaml力を晒す 第六回 「関数型だけど、オブジェクトなんだもん」

なんかこのシリーズ、増えれば増えるほど自分のOCamlへの知識のなさが見えてくる… 今回はFunctional Objects.「あー、それね。はいはいChapter 3あたりに書いてあるのでしょ」と思った人は正解です。いやはや、私は今"O"縛り中なので、クラスとかオブジェク…

OCamlのGADTを試す

今回はOCamlの現在のlatest versionである3.12.1には実装されていない、GADTについて試してみました。とりあえず、現状でOCamlのGADTを試すにはOCamlのsvnリポジトリからgadtsをとってきてビルドとインストールを行う必要があります。ただし、これを行うと、…

私の貧弱なOCaml力を晒す 第五回 「OCamlの怪」

今日は夏に向けていっちょOCaml界に伝わる怪談話でも… ではなくて、幽霊型について。使えたら面白そうだと思うのですが正直未だに実践で使ったことがないので、非常に残念な気分になりつつも書いていきます。幽霊型は次のように定義できます。 # type 'a num…

私の貧弱なOCaml力を晒す 第四回 「findlibと対話」

ターミナルで $ ocamlと叩くとOCamlのインタラクティブシェルが起動します。 Objective Caml version 3.12.1 # で、さぁてモジュール読み込もうと思ったときに「あっ、しまったぁ!インストールしたモジュール試したかったから、cmaファイル読み込ませないと…

オンラインゲームの課金制度の問題について

内定をもらった会社はオンラインゲーム開発の企業なので、こういうことも耳にすれば考えたりしてます。最近はアイテム課金制度が問題視されているみたいです。一昔前であれば私も「その人が欲しいと思って金を出したのだから、それをどうこう言うのも変な話…

私の貧弱なOCaml力を晒す 第三回 「整数の尻尾」

第三回にして、v 3.12の新機能ではなく前からあった機能を書きます。皆さんはリテラルのsuffixをご存知でしょうか。 浮動小数点数を『1.0f』なんて書いているのは見かけたことないですか?見たことない?さすがOCamlばかりやってきた人は違いますね!(違リ…

私の貧弱なOCaml力を晒す 第二回 「module(´ω):つ sig」

今回はmodule type ofによるモジュールのシグネチャの取得。・・・あれ、また3.12の新機能じゃないか!それはいいんです、それは。最近ちょうど使う機会があったんですっ!たまたま使っただけですっ! module type of シグネチャを書くときに、モジュール同…

私の貧弱なOCaml力を晒す 第一回 「ローカルオーッ、\プンッ!/」

今回は私の貧弱ぅなOCaml力を晒すべく、最近知ったばかりのOCamlの知識を書いていこうと思います。自分が知らなかったOCamlネタが見つかり次第、随時記事として追加していくつもりです。今回はlocal open。これは3.12で追加された機能ですね。まあ、知らなか…

型による安全なWebプログラミングライフ 〜 OCaml & Ocsigen〜

というタイトルの通りのことを目指して、現在OCamlとOcsigenというWebアプリケーションフレームワークでWebアプリケーションを作ってみようと思ってます。ちなみにこのOCamlとOcsigenというのはかなり癖のある環境で、私は今のところDebian上でしかOcsigenま…

31日のイベントのお題をGroovy&Spockにする

なんとかGroovy&SpockでXP一日体験ワークショップで出されていたお題を終えること自体は終わったので、一応のおわた宣言ブログ書きます。元々のXP一日体験ワークショップのときのGithubがあるのですが、受入テストまで書き換えてしまっているので現在コード…

CoqでFizzBuzzを書いてみる

Coq

これ、やろうとすると結構難しい。ということで勉強がてら、Web上の他の人のものを参考にして理解しながら進めることにしました。つまりほぼ私が書いたものではないです。いちおう自分でいろいろ調べつつ、理解できていないところは理解しながら進めてみまし…

refineの例

Coq

Coqを勉強していたら、refineタクティクというものに出会った。一緒にSpecif moduleのsigの記述もあったので最初は混乱していたものの、何となく把握してきた。使い方は次のような感じ。 Definition pred (n : nat) : n>0 -> nat. refine (match n with | 0 …

任意の自然数a,b,cについてa*a+b*b=c*cのときにa,b,cすべてが奇数ではないことを証明してみた

Coq

Coqネタ。挑戦してみていろいろ勉強になった。試行錯誤はやっぱり勉強になる。勉強中はバックトラックでもタダでは起きない(キリッ 時間かかり過ぎですが。今回はタイトル通り、「任意の自然数a, b, cについて a*a+b*b=c*c のとき、a, b, cすべてが奇数ではな…

XP一日体験ワークショップに参加してきたったー

さんかしてきたったー・・・で終わったらだめか。 XP一日体験ワークショップに参加してきました。今回はTDD、ペアプログラミング、CIによる受け入れテストがメインでした。一応参加しての感想をば。 ソロドロー&ペアドロー(泣 一人でと、二人で作業をやる…

JenkinsとGitとSpockで独り継続的インテグレーション

明日は大阪で楽しくXPを体験してこようと思ってます、なおきりんです。(XP一日体験ワークショップ! - http://kokucheese.com/event/index/30196/)今回、継続的インテグレーションが参加するイベントの一つにあげられているので、先取りで独り継続的インテ…

Coq to OCamlで便利な標準ライブラリ(型変換)

先日Coqの関数をOCamlのコードとして出力してみました。サンプルとしては (* ret_num.v *) Definition ret_num (n : nat) : nat := n. Extraction "ret_num.ml" ret_num. を coqc ret_num.vして (* ret_num.ml *) type nat = | O | S of nat (** val ret_num…

今後の進路決定があったので書き残しておく

決まったことがあるので、いろいろ書き残しておくことにします。 まずは内定 とある第一志望の企業に内定もらいました。 職種はソフトウェアエンジニアです。身に余る高い評価をいただいたと思っているので、これから一年間いろいろがんばってみようと思って…

逃げないことはそれだけで才能だと思った

唐突で申し訳ないのですが、タイトルのようなことを思ったのでそう書きました。大したことも書いてない記事で、いつものような勉強の事ではないです。

来春プログラミングする人のためのTODO list

来春プログラミングするのは私です。人にお勧めしたいことも含みつつ、書いてみることにします。(自分のために書いているので、やってないことも含みますがご了承ください。) Coq http://coq.inria.fr/ 定理証明支援器として知られるCoqです。 特定の値に対…