D言語

クロージャてすと

import std.stdio; int fill() { int[100] x; } int delegate() mkcounter(int i) { return {return i++;}; } int main() { int delegate() c1 = mkcounter(1); int delegate() c2 = mkcounter(3); writefln("%d", c1()); fill(); writefln("%d", c2()); fil…

D2.007でクロージャがやってきたよ

いたるところで話題になってますけどD2.007にしてようやくクロージャきたですよ。ダウンロードはChange Logから。 http://www.digitalmars.com/d/changelog.html でまあクロージャ使ってBrainfuckインタプリタ書いてみました。前にクラスとか使ってそれっぽ…

Dで書いてなかったかなと

情報工学実験がガイダンスだけで空きコマできたのと、あーまた学期始まったなあと少し気分が昂ぶったのでBFインタプリタでも書いて落ち着くことにする。 一番時間がかかったのは、switchブロックのなかで一つbreakを書き忘れてたところがあったこと。そんな…

wxDインストール。

tar.gzとってくる。 http://wxd.sourceforge.net/ % tar zxf wxd-0.11.tar.gz % cd wxd %make なんか色々略 ../wx/wxObject.d(32): Error: object.string at /usr/local/dmd/src/phobos/object.d(13) conflicts with wx.common.string at common.d(78) そん…

モンテカルロ法で円周率を求める

「モンテカルロ法を実装しなきゃ!」という気分になった。まずモンテカルロ法がなんなのかわからんかったので、調べるところから。適当にぐぐった。「確率で積分がどうしたこうしてほげほげ」。よくわからんな。円周率を求めることができるらしい。なんか聞…

lisp処理系ぽいものを書く(その5くらい)

http://konbu.s13.xrea.com/lib/scm/istsp.d http://konbu.s13.xrea.com/lib/scm/istsp-20070922.tar.bz2 パーサ部分の構成を考えなおしたら、コードがかなりあっさりめに。quoteも簡単にできました。 > (+ 3 2 1 . (4 5)) 15 > '(1 2 3 '(1 2 3)) (1 2 3 (q…

lisp処理系ぽいものを書く(その4くらい)

コンスセル(a . b)を読めるように。あと忘れてたquote。 > (+ 3 2 1 . ()) 6 > (quote (1 2 3 . ())) (1 2 3)などと。ある程度できたんで、適当に演算実装してまわることもできるけど、まだまだ内部がいいかげんだらけなのでしない。でもやっぱりしたいよう…

lisp処理系ぽいの書いてみたり(その2くらい)

Schemeタグ付けるようなもんかよと思いつつ。syntaxぽいのもできるようにしてみた。ユーザ側から関数とかsyntax定義できないから意味無いけど。 ソースこのへん http://konbu.s13.xrea.com/lib/scm/istsp.d > (define a (+ 10 20 (* 3 8) (/ 9 3))) 57 > a 5…

lisp処理系ぽいの書いてみたり

間違ってもScheme処理系ではありません。適当に書いてるので、たぶん色々適当です。わりと面白い。 % ./istsp > (* 10 (/ 9 3) (+ 1 2)) 90 > (null? nil) #t > (not #f) #t > (eof? (read)) 322 #f > (eof? (read)) ^D#t > (cons "hoge" "moge") ("hoge" . …

MiniSchemeをD言語で書いてみたよ、と。

ちょーみじかいScheme処理系として有名なMiniSchemeをDに移植した。たぶん動く。 http://konbu.s13.xrea.com/lib/scm/miniscm-d-20070815.tar.bz2 ほとんどそのまま移しただけ。やったのは、先日の日記に書いたScheme関数に対応する関数を書いたことと、GCま…

X11 bindings for D いじり。

誰か既に書いてておかしくない気もするのだが、何故か見あたらないので書いた。D言語使いの人って Windows ユーザに多いからだろか。一応まとめてアップ。tinywm.d も同梱。 http://konbu.s13.xrea.com/lib/d/libdx11-20070810.tar.bz2 import Xlib;してる h…

test