トップ «前の日(12-29) 最新 次の日(12-31)» 追記

日々の流転


2001-12-30

λ. 読書

『X - 七曜の章』
友谷蒼[著] 安部恒[イラスト] CLAMP[原作]
『キノの旅 - the Beautiful World』
『キノの旅Ⅱ - the Beautiful World』
時雨沢恵一[著] 黒星紅白[イラスト]
Tags:

2002-12-30

λ. 今日は待ちに待った石川さんとの「でぇと」。ただし場所はビッグサイトですが(笑)。

今回は大手町から臨海線で行った。それにしても、コミ◯モードで臨戦態勢(?)の石川さんを見れたのは楽しかった。

λ. 購入物等

『2003 Year Calendar』
サイ ヨシユキ, いろは楓, Wednesday, 青いかりんとう, チエコ, 今野 隼史 [画]
『felica. - BITTERSWEET FOOLS ReCOLLECTION BOOK -』
JEWELBOX, LAMPBOX [著]
『かわいいのすき。』
みさくらなんこつハースニール
『コメボン』
RiceCandy
『銀茄子畑 Ver.1.00』
銀茄子園
『東方妖々夢 体験版Plus』
上海アリス幻樂団
東方妖々夢げっぇ〜っと!!。> 萩野服部研の諸氏
『蓬莱人形』も欲しかったのですが、こっちは売り切れてしまっていました。 残念。
『Tetramorph - 0 -』
藍羽 優希 [画]
『VAMP FESTA MANIFEST !!』
温風 流音 [画]
『華』
薬用植物園 (南戸 まあ)
『A Paradisiac island 』
海老名 総一, 猫井ミィ, てくてく, Azasuke, ひつき, 千家 カゲロー, TAMA, 大嶋 亮, 雨宮 えびす丸, 井上 新太郎, 時雨 [画]
ラーメン本
サークル不詳。

λ. Ruby-CPL (仮称)

R-NATのサブルールにはR-NAT-VとR-NAT-Fがあるのだけど、とりあえずR-NAT-Vに限定して実装してみた。これで例えば「prl(zero,succ.pi2).cons.pair(!,cons.pair(!,cons.pair(!,nil))) ⇒ succ.succ.succ.zero」が実行できるようになる。

ただ、R-NAT-Vはnatural transformationのdomainが定義しようとしているオブジェクトそのものの場合にしか使えないので、これだけではやっぱり弱すぎる。例えば、prodやinflistに関する計算は出来ても、expやdyn'に関する計算は実行できない。

Tags: CPL

λ. 配列の長さを無視してアクセスしているようにしか思えんのだが……

Cでは、末尾のメンバに可変長配列を持つような構造体を扱う際の常套手段ですよん。

本日のツッコミ(全6件) [ツッコミを入れる]

ψ うぃすてりあ [> 東方妖々夢げっぇ〜っと!!。> 萩野服部研の諸氏 神降臨!]

ψ うぃすてりあ [> 配列の長さを無視してアクセスしているようにしか思えんのだが…… うむ、俺も数ヶ月前に嵌ったな、これ。 所詮、Cに..]

ψ jn [http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.8...]

ψ さかい [gccには色々な拡張機能があって面白いですよね。 ちなみにC99ではサイズを省略する事が出来るようになってたりします..]

ψ 石川 [またよりにもよって誤解を招くような書き方を。。 臨戦体制ってそんなにテンパってましたか、私?^^; 相田さんの同人..]

ψ さかい [臨戦「体制」って今のアメリカみたいな感じ? とかぼけてみよう。 # 別にテンパってはいなかったと思いますよー > ..]


2005-12-30

λ. 冬コミ

[ビッグサイトの写真] 冬コミに行ってきた。 けど、出発したのが遅かったので、到着したときには「東方文花帖」も平均律の新刊も売り切れていましたとさ。しょぼーん。

購入物いろいろ

「東方兎月狂」
うみねこ亭
「神巫 -ICHIKO-」
{SIV,はるのひと}@WAVEDRIVE
「synchrotone (シンプルトーン)」
村田連爾@PASTA'S ESTAB
「Toluene」
「a001」
TOMA@tomatika
「ハッピー★スーサイズ (Happy Suicides)」
Zazie@SELFISH GENE
「SHOJOK@KEI VOLUME5」
inkey@少女架刑
「MitsumenoNayami」
こうずかゆうき@ユキネコブランド
「KIRAN's Material」
騎羅@ぱぴくりあ
「Scarlet」
Shin "JASON" Nagasawa @BoleRO + 安倍吉俊,加茂,ワダアルコ
「MONSTER SHOW-CASE ― THE FANTASY EXPOSITION 2ND」
氷堂れん@DOLL'S PLANET
「After all, to the Far, Farside records」
理間高広@Strangeness

2007-12-30

λ. HaskellでCYK法

文脈自由文法のパーサーの最も効率の良いアルゴリズムの一つとしてCYK法(CYK algorithm)があるのだけど、これまでどういうアルゴリズムか知らなかったので、ちょっと調べてHaskellで素朴に書いてみた。 手続き型言語で書くとテーブルをボトムアップに作る手順が肝になるが、Haskellだと順序を気にせず再帰的にテーブルを定義するだけで良い。

import Data.Array

type S = N
type N = Int
data Prod t = T t | !N :++ !N
type Rules t = Array N [Prod t]
type Table = Array Int (Array Int (Array N Bool))

parse :: Eq t => Rules t -> S -> [t] -> Bool
parse rules s xs = table ! 0 ! (n-1) ! s
  where
    n = length xs
    table = mkTable rules (listArray (0, n-1) xs)

mkTable :: Eq t => Rules t -> Array Int t -> Table
mkTable rules ary = seq rules $ table
  where
    table =
      mkA lb ub $ \i ->
      mkA i  ub $ \j ->
      flip fmap rules $ \ps -> or $ do
        p <- ps
        case p of
          T t ->
              [i==j && t==ary!i]
          n1 :++ n2 ->
              [lookup i k n1 && lookup (k+1) j n2 | k <- [i..j-1]]
    (lb, ub) = bounds ary
    lookup i j n = table ! i ! j ! n
    mkA i j f = listArray (i,j) [f x | x <- range (i,j)]

で、適当な例で試す。

plus = 0
mult = 1
lpar = 2
rpar = 3
expr = 4
factor = 5
plus_expr = 6
mult_factor = 7
expr_rpar = 8

rules :: Rules String
rules = array (0, 8) 
    [ (expr,   num ++ [lpar :++ expr_rpar, factor :++ mult_factor, expr :++ plus_expr])
    , (factor, num ++ [lpar :++ expr_rpar, factor :++ mult_factor])
    , (plus_expr, [plus :++ expr])
    , (mult_factor, [mult :++ factor])
    , (expr_rpar, [expr :++ rpar])
    , (plus, [T "+"])
    , (mult, [T "*"])
    , (lpar, [T "("])
    , (rpar, [T ")"])
    ]
    where
      num = [T (show i) | i <- [0..10]]

test = parse rules expr ["1", "*", "(", "2", "+", "3", ")"]
Tags: haskell

2008-12-30

λ. 忘年会

いつもの芋蔵で忘年会。 今回呑んだのは「くじらのボトル」「山ねこ」「黒閻魔」「七夕」「たちばな」。

ダイナタンクス


2009-12-30

λ. 忘年会@芋蔵

今回飲んだ焼酎

  • くじらのボトル
  • 八幡
  • やきいも鬼火
  • 神の河