トップ «前の日(06-29) 最新 次の日(07-01)» 追記

日々の流転


2001-06-30 今日は良いことあると良いな

λ. 問題

矛盾と、単に偽である事の違いは?

λ. コンソール

僕も、「ユーザー空間で動作するコンソールをデフォルトにするのが良い」と思う。でも、jfbtermは、(以下略)

λ. 論理プログラミングのミニプロ (2)

DCGでチャキチャキとXMLパーサを書き上げた。インターフェースとかが無茶苦茶だけど、それなりには動いているっぽい。

選言が使えたことを思い出して、若干シンプルに出来た。

λ. No such event

DocType宣言周りをテストしてたら変な現象に遭遇。EmacsのInferior Prolog modeで、以下のような事が起こる。コンソールで使う分には発生しないし、何がこのメッセージを出力してるのかも良く解んなかったし、なんか謎。

?- write("!D").
! No such event

λ. ケシゴム

それってベーやんのタタリでは? ;-) って、クラス会いいな〜

λ. 体育Iのレポート

明日こそは書かねば… > 自分

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

ψ ケシ [べーやんって誰?(´Д`;]

ψ さかい [ベルゼ◯ブっす。バスタードの20巻のあとがきのネタ。]


2002-06-30

λ. お昼

回転寿司。

λ. Monad

Monads for functional programming を読み返して、HaskellのMonadクラスが圏論での定義と等価な事がやっと理解できた。

λ. 韓国版『Java言語で学ぶデザインパターン入門』

発音は「Javaオノロ ペウヌン ティヂャイン ペトン インムン」って感じかな?


2003-06-30

λ. お昼

富山名物、ます寿司。

λ. 水泳

水中カメラで自分の泳ぎを観察する予定だったので楽しみにしていたのだけど、水中カメラの調子が悪かったとかで、かわりにクロールのコツについて教わった。

  • サムエントリー
  • ハイエルボー
  • S字プル
  • 手をいれるタイミングとキックのタイミングを合わせる (そのためにツーキックの練習をしたのだけどムズかった)
  • (もう一つ教わったはずだけど、思い出せない。ローリングに関することだったかも。)

λ. Teach Yourself Scheme in Fixnum Days

LISP Scheme Part7 (772)より。Fixnum days ってあんた…… (笑)

Tags: scheme
本日のツッコミ(全2件) [ツッコミを入れる]

ψ nobsun [21のことらしいっす。 http://www.ccs.neu.edu/home/dorai/t-y-scheme/t..]

ψ さかい [ほっ。よかった、よかった。 最悪の場合にFixnumの上限(2**30-1 日とか?)に達するなんて可能性は……流石..]


2004-06-30

λ. 「出口調査は民主党に清き一票を」キャンペーン

     出口調査は「民主党」!
 出口調査では「民主党」に清き一票を!!
\\                     //
       ∧_∧ ∧_∧
      ∩´∀` )( ・∀・)  アナタの一票が
      ヽ    .)( つ¶ 9    開票速報を変えます!
      | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
      |. ジャス研  新  党 .|
      |________|  /
      .||. ∧_∧  ∧∧  ||   出口調査は「民主党」!
      .|| ( ´∀` ) ( ゚Д゚) ||     出口調査は「民主党」!
      ||-────────|| どこに投票しても出口調査は「民主党」!
      || _______ .||   出口調査で「民主党」に清き一票を!!
     .||__       __|| \     
     .|〇〇|≡≡@≡≡.|〇〇|
     .{二二二._[  ]_.二二二}
      凵            凵
◇◇◇◇◇◇自民でも民主でもなく「マスコミにNO!」◇◇◇◇◇◇
◇◇◇「出口調査は民主党に清き一票を」キャンペーン開催中!◇◇◇
http://www.wafu.ne.jp/~gori/diary3/000306.html
=======↑↑↑ コピペ推奨 ↑↑↑============

No_Masukomi.gif

面白そうだなぁと思ったのだけど、うちのところの投票所では出口調査なんてやってるの見たことないので、縁がなさそうだなぁ。

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

ψ lanig [sfcといえばWIDEでよく勉強してます笑情報科学にも大変興味あります。毎回面白く読ませて頂いてます。難しいのやって..]

ψ さかい [はじめまして。lanigさんの日記を見ましたが、色々と勉強しているようですね。お互い頑張りましょう!]


2005-06-30

λ. The 2005 GHC survey

出てますよ。

Tags: haskell

λ. 『道路の経済学』 松下 文洋

道路の経済学 (講談社現代新書)(松下 文洋) を読んだ。

Tags:

λ. CのプログラムからHaskellの関数を呼び出す

soutaroさんの「CのプログラムからOCamlの関数を呼び出す」というエントリに触発されて、Haskellの場合について書いて見た。OCamlの場合に比べると幾分面倒くさい。

Foo.hs
module Foo where
 
import Foreign.C
 
f :: CInt -> CInt
f x = x + 1
 
foreign export ccall "f" f :: CInt -> CInt
main.c
#include <stdio.h>
#include "HsFFI.h"
 
#ifdef __GLASGOW_HASKELL__
#include "Foo_stub.h"
extern void __stginit_Foo ( void );
#endif
 
int main(int argc, char *argv[])
{
  hs_init(&argc, &argv);
#ifdef __GLASGOW_HASKELL__
  hs_add_root(__stginit_Foo);
#endif
 
  printf("f(%d) = %d\n", 3, f(3));
 
  hs_exit();
  return 0;
}
コンパイル
% ghc --make -fglasgow-exts Foo.hs
% ghc -c main.c
% ghc --make -fglasgow-exts -no-hs-main Foo.hs main.o

一行目は Foo_stub.* を作るため。

ここでは書かなかったが、実行時にHaskellの関数をCの関数に変換することも一応出来る。

Tags: haskell

λ. 哺乳類と昆虫を混ぜると……

グロ注意。

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

ψ takot [まぜるな危険!]

ψ takot [……とコメント書いてから見たけど,それほどグロくなかった. 二枚目の犬顔イモムシは前に見たことあるなこれ.]

ψ さかい [ナイスツッコミ! でも、蓮コラがダメでこれが大丈夫ってのは何か納得いかん(ぉ]


2006-06-30

λ. となりの801ちゃん

なんか、「となりの801ちゃん」というブログを紹介されたのだが、これ凄いね。

λ. ICPC国内予選

私は今年はもう参加できないなんだよなぁ。去年参加したときは面倒くさいとか思ってたが、悔しかったのでまた挑戦したかった。

[写真]

λ. concatN

<URL:http://d.hatena.ne.jp/lethevert/20060630/p3> より。

ぁゃιぃ拡張機能を使うと出来ないこともない気がする。以下のコードの元ネタはOlegさんの Deepest functor 。なお、私はどうしてこれでうまくいくのかいまだに良くわかってない。

{-# OPTIONS -fglasgow-exts #-}
{-# OPTIONS -fallow-undecidable-instances #-}
{-# OPTIONS -fallow-overlapping-instances #-}
module ConcatN where

data Atom

-- Check if a type is a collection type. This is the only typeclass that
-- needs overlapping instances
class IsCollection  t coll | t -> coll
instance IsCollection (m a)       (m ())
instance TypeCast Atom coll => IsCollection t coll

-- our common working horse
class TypeCast   a b   | a -> b, b->a   where typeCast   :: a -> b
class TypeCast'  t a b | t a -> b, t b -> a where typeCast'  :: t->a->b
class TypeCast'' t a b | t a -> b, t b -> a where typeCast'' :: t->a->b
instance TypeCast'  () a b => TypeCast a b where typeCast x = typeCast' () x
instance TypeCast'' t a b => TypeCast' t a b where typeCast' = typeCast''
instance TypeCast'' () a a where typeCast'' _ x  = x

class ConcatN a c | c -> a where
    concatN :: c -> [a]

instance (IsCollection c coll, ConcatN' coll a c) => ConcatN a c where
    concatN = concatN' (undefined::coll)

class ConcatN' coll a c | coll c -> a where
    concatN' :: coll -> c -> [a]

instance ConcatN' Atom a a where
    concatN' _ a = [a]

instance (ConcatN a c) => ConcatN' [()] a [c] where
    concatN' _ = concatMap concatN

test1 = concatN [[[True]],[[False,True]],[]]
test2 = concatN [[1::Int,2,3],[4]]

深さを指定してconcat

稲葉さんのとこで色々なコードが紹介されていたので、私も少しバリエーションを。深さを指定してconcatするなら、私ならこんな感じで書くかな。

data Z   = Z
data S n = S n

class ConcatN a n l | a n -> l where
    concatN :: n -> l -> [a]

instance ConcatN a Z [a] where
    concatN _ = id

instance ConcatN a n l => ConcatN a (S n) [l] where
    concatN _ = concatMap (concatN (undefined :: n))

さらに、型クラスではなくGADTを使ったバージョン。

data N a l where
    Z :: N a [a]
    S :: N a l -> N a [l]

concatN :: N a l -> l -> [a]
concatN Z     = id
concatN (S n) = concatMap (concatN n)
Tags: haskell

λ. 某氏の筆箱の中身

まるで、雑多なものが沢山入っていて、まるで植芝理一の漫画のようだ。 感動。

[写真]

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

ψ yuragi [凄いとは思いますが、身近な友達がどっぷりと801ちゃんなので何も言えない……]

ψ かずと [わぁ。。。。なんかすごく素敵な世界 どっぷりつかりたい。]

ψ さかい [>yuragiさん あらら。 私も何も言えないっちゃ何も言えないんですが、801ちゃんな人には感心しきりですよ。 ..]


2008-06-30

λ.A functional quantum programming language” by Thorsten Altenkirch and Jonathan Grattage

We introduce the language QML, a functional language for quantum computations on finite types. Its design is guided by its categorical semantics: QML programs are interpreted by morphisms in the category FQC of finite quantum computations, which provides a constructive semantics of irreversible quantum computations realisable as quantum gates. QML integrates reversible and irreversible quantum computations in one language, using first order strict linear logic to make weakenings explicit. Strict programs are free from decoherence and hence preserve superpositions and entanglement - which is essential for quantum parallelism.

量子コンピュータのための関数型言語QMLについて。QMLはゲートやそれに対応するコンビネータを直接記述するのではなく、普通の関数型言語のような書き方の出来る言語。 非可逆な量子計算を表す圏FQCと可逆な量子計算を表すその部分圏とを、非可逆な古典計算を表す圏FCCと可逆な計算を表すその部分圏とに対応させながら、言語を構成していっているのが面白い。 ただ、細部については、私は量子力学はもとより線形代数をちゃんと勉強していないので、良く分からず悔しい。

Tags: 論文

λ. 目薬

最近目が疲れるので、生まれて初めて目薬を買ってみた。 「サンテザイオン」って名前がなんだか「エヴァンゲリオン」とかそんな感じでかっこいいぞ。

[サンテザイオン]

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

ψ m-hiyama [> 良く分からず悔しい。 でしょ、でしょ、悔しいでしょう。 死ぬ前にわかりてえ、みたいな気分ですね、僕は。]

ψ さかい [そうなんですよ〜 圏論勉強会の Temperley-Lieb Algebra で、ちょっとは分かるようになるといい..]


2009-06-30

λ. ICFP Programming Contest 2009

今年も Team Sampou というチーム名で ICFP Programming Contest に参加してた。 今年のメンバーは、私、nobsun[1..100]>>=penさん、cut-seaさんという感じ。 オンラインでのやり取りにはChatonのhaskell-jpルームを使っていた。

今年は、しょうもないバグで時間を使いすぎて出遅れて、2002が誤差のせいでホーマン遷移一回ではクリア出来ないのをどうしようかと考えているうちに時間切れになってしまった、という感じ。 途中では300xの Eccentric Meet and Greet まではギリギリなんとかなるんじゃないかと思ってたけど、見込みが甘かったなぁ。 結局、2002はギリギリで解けたけど、最終的なスコアは Weighted Total Score 1002.1329 (8 problems solved) 。 とても楽しかった72時間だけど、今年も結果を出せなかったのは少し残念。

振り返り

Keep

可視化ツールを作ったこと
昨年のshinhさんとかを見て可視化重要と思ってたので、作ってみて、確かにそうだと思った。

Problem

分業が出来なかった。
分業すべきところで、分業出来てなかった。私が土曜日の午前中別の用事があって集まれなかったのが一因。まあ、みんな土台から自分で書きたがるしね。
しょうもないバグに悩みすぎ。
Input命令がSqrt命令にデコードされているとか、0xCAFEBABEが0xCAFABABEになってるとか、しょうもないバグで半日以上つぶれた。
過剰な抽象化レイヤ
昨年、あまりにアドホックなコードを書いてしまい収集がつかなくなってしまったことの反省から、今年はArrowベースのFRP(Functional Reactive Programming)とその上のタスク記述用のMonadを作ったんだけど、これは今回の問題には抽象化レイヤが過剰だった。結果として、それを作るために時間を使いすぎたし、また他の人がいじりにくくしてしまったと思う。
デバッグ用の口
上で書いた抽象化レイヤにはログ出力用の口を用意していなかったので、実行の様子の観察がtrace関数頼りになってしまっていた。ちゃんとログ出力用の口を用意しておくべき。
寝不足
興奮してあまり寝れていなかった。あまり眠気は感じなかったけど、やっぱり疲れてはいて効率は低下している。コードを書いていると気づきにくいけど、数学的な事を考えると、寝不足なのが直ぐにわかる。

Try

コードカバレッジツール
命令デコードミスについては、コードカバレッジツールを使えば、VMのコードの特定の部分が実行されないことから気づけたはず。GHC にも Haskell Program Coverage (HPC) が付属しているし、カバレッジツールは使えるようにはなっておこう。
ちゃんと寝る
ちゃんと寝よう。どうやったらいいのかわかんないけど。

関連