クラなんとか or くらなんとか or cla なんとかの日記

2009-04-01 昨日のチャットで,I’m being serious about ... とか言われた

チャーチ数をつくってみた

SICP の問題2.6 を見ていたら書きたくなったので,別の言語で写経してみた.

#!/usr/bin/env perl
# -*- mode: perl; coding: utf8; -*-
use strict;
use warnings;
use Perl6::Say;

my $zero = sub {
    my ($f) = @_;
    sub {
        my ($x) = @_;
        $x;
    };
};

sub add_1 {
    my ($n) = @_;
    sub {
        my ($f) = @_;
        sub {
            my ($x) = @_;
            $f->($n->($f)->($x));
        };
    };
}

my $one = add_1($zero);
my $two = add_1($one);

sub plus ($$) {
    my ($m, $n) = @_;
    sub {
        my ($f) = @_;
        sub {
            my ($x) = @_;
            $m->($f)->($n->($f)->($x));
        };
    };
}

sub display_church ($) {
    my ($n) = @_;
    my $inc = sub {$_[0] + 1};
    $n->($inc)->(0);
}

say "zero = ", display_church($zero);
say "one = ", display_church($one);
say "two = ", display_church($two);
say "(2 + 1) + 2 = ", display_church(plus(add_1($two), $two));

JavaScript は,return が必須だし,function キーワードは長いし.

こういうのを書くときは面倒.

あと括弧大杉.plus() んとことかわけわからん.

(function () {
    var zero = function (f) {
        return function (x) {
            return x;
        };
    };
    function add_1(n) {
        return function (f) {
            return function (x) {
                return f((n(f))(x));
            };
        };
    };
    var one = add_1(zero);
    var two = add_1(one);
    function plus(m, n) {
        return function (f) {
            return function (x) {
                return (m(f))((n(f))(x));
            };
        };
    };
    function display_church(n) {
        function inc(x) {
            return x + 1;
        };
        return (n(inc))(0);
    };
    alert("zero = " + display_church(zero));
    alert("one = " + display_church(one));
    alert("two = " + display_church(two));
    alert("((2 + 1) + 2) = " + display_church(plus(add_1(two), two)));
})();

2008-09-13 あぁ.健康でしたとも

Della.JS#6 にいってきた

今回もVISH株式会社様,会場提供ありがとうございました.

Topics

  • モジュールと正規表現をやるよ
  • 詳細正規表現を読むといいよ
  • だけど,普通に使うぶんにはそこまで要求されないよ
  • 一緒の店にしようと思ったんだけど,一杯だったんだ
  • 食べ物で遊んじゃだめ
  • 健康診断がなんだ!(もうやり終えた人の意見)
  • ホワイトボードマーカが書けないときのストレスときたら
  • ネットワークならまかせとけって人がいてよかった
  • id:toyoshi++
  • 大丸er で,ダイマラー らしい
  • 大丸オフとか行ってみたいけど,時間が合わない
  • なんかlingr の名前が間違っているんだけど,どうやって直せば?
  • perlrun とか読むといいかも

そういえば,new RegExp() と //(リテラル)で何か違いがあるんだっけ?

という疑問を聞くの忘れていた.

自分で調べるか.

2008-09-03 中華三昧

s5 reloaded + syntaxhighlight

この辺を見て,s5 reloaded + syntaxhighlighter を試してみる.

そのままできるようで助かった.

JavaScript のコード的には s6 の方が楽しそうだ.

併せて読みたい.

とあいえ,syntaxhighlighter にPerl が無いのが酷過ぎる.

しかも,とかいってしれっとPerl コメントスタイルとか定義してんの.

SingleLinePerlComments : new RegExp('#.*$', 'gm');

とかやっている間に,コメント欄にあったので,それを使うことにした.

んだけど,結局気に入らないので,どんどん手が入ってく.

2008-08-02

JavaScript 第5版 読書会

ちょっと脱線が多かったような気がしますが,概ねいつものように進んだと思います.

今回も会場提供してくださった,VISH株式会社様には特別の感謝を.

トピック的には.

  • id:samurai20000 さん,おめでとうございます.
  • 勉強会中に脱線したら,LT ということにするライフハック
  • 静的な意味で.
  • ダックタイピングって思ってたのとう.
  • お菓子で溢れてる.(太るよ!)
  • ハイ,リア充,リア充.
  • お仕事中に,ほんとスミマセン.
  • AS は,たのしいらしい.

懇親会のときに,いつもと違う人みたいとか言われていたみたいです.

すみません,明日のため体力温存してたのがそう見せる原因だったかもしれません.

人心を惑わすネタメモ

  • 静的型付けが必要なのは,小学生までだよねー.(異訳+混同+LL)
  • 文脈自由なんだから,空白入ってもOKですよね.(でも文脈自由とかの意味を聞かれると困るから,それJava でも通るよ.くらいしか言わない.)
  • もうコンパイラとかパーサを自分で書けば良いんじゃ.(勉強的な意味で)
  • nanto_vi 信奉派と,そうでない派.(おまいら,どっちに着くのか考えてから物言えよw)

あ,今思ったけど Haskell も静的型付けか.

あと,たわば先輩ってのがいたとかいないとか.

文脈自由をWikipedia で見たけどよくわかりませんでした.封印しとく.

あ,とあいえ,BNF で書けるとか書けないとかの話ですかね?

あ,思い出したかも.括弧の位置が決まってるのって,シェルスクリプトかVB とかじゃないですか?

2008-07-10

JsUnit

$ sudo aptitude install ant
$ sudo aptitude install junit4
$ sudo aptitude install default-jdk
$ unizip jsunit2.2alpha11.zip

あり?動いてない?調査中.