2014-01-01から1年間の記事一覧

method-missingを作ってみた

勢い余って「適用できるメソッドがなければ method-missing を呼び出す」機能を作ってみた. (define-generic method-missing) (define-class <method-missing-generic> (<generic>) ()) (define-method apply-methods ((gf <method-missing-generic>) methods args) (if (null? methods) (apply method-missing gf arg</method-missing-generic></generic></method-missing-generic>…

Hello, polyglot!

きっかけ: るびま これを読んでpolyglotするかーって思った. 今回のコンセプトは 初めてなのでやさしくHello, world! 好きな言語を盛り込む 140文字以下 以下,Schemeと言いつつGauche決め打ちである. ソースコード できあがったのがこれ. ;(#)={-"^<"v '…

Racketの継続プリミティヴ

Racketの継続がどうなっているのか,Racketのドキュメントを読みつつ分かったことをまとめる. (注意: この記事は継続の解説ではない.寧ろ継続自体は大体分かっている前提で進める) まず,主な継続プリミティヴについて簡単に説明する.次に,組み合わせた…

MIT/GNU Scheme 9.1.1

MIT/GNU Scheme - GNU Project - Free Software Foundation 今回は無気力なのとなんかいろいろあってよく分からないのでバイナリを入れた."Compiled on OS X 10.6" だし.x86-64のをダウンロードしてコピーして終わり. かと思いきやパスにコロンが入ってて…

s id id idに型が付かない件について

s id id idに型が付かない. ghci> let s f g h = f h $ g h ghci> :t s id id id <interactive>:1:5: Occurs check: cannot construct the infinite type: a = a -> b Probable cause: `id' is applied to too few arguments In the second argument of `s', namely `id'</interactive>…

TAPLを読む

「Types and Programming Languages」(通称TAPL)の訳本,「型システム入門 −プログラミング言語と型の理論−」を読んでいる.読書日記をつけるといいんじゃないかと思い立ったが面倒臭くなった.読み始めは2/4頃.10章まで読んだ. 序文に章の依存関係が載っ…

c-wrapperのインストール

c-wrapper,c-wrapper は更新されていないけど http://hg.koguro.net/c-wrapper で更新されていた.ダウンロード→タグからダウンロードできる. ./DIST gen ./configure CC=/usr/bin/gcc make DYLD_INSERT_LIBRARIES=/usr/lib/libffi.dylib make check普通に…

型クラスのパラメタ多相?

Either a b(但しaとbは何らかの共通の制約を持つ)に適用できる f g = either g g という関数を書こうとしたが,書けなかった.特定の型クラスに限定すれば書くことができる. {-# LANGUAGE RankNTypes #-} fshow :: (Show a, Show b) => (forall c. (Show c)…