時の羅針盤@blog
オランダの生活、自身が行っているSagittarius Schemeの開発日誌、
その他雑多なことをつづってます。
Let's start Scheme
(Move to ...)
(はじめよう Scheme 0)
(はじめよう Scheme 1)
(はじめよう Scheme 2)
(はじめよう Scheme 3)
(はじめよう Scheme 4)
(はじめよう Scheme 5)
(はじめよう Scheme 6)
(はじめよう Scheme 7)
(はじめよう Scheme 8)
▼
2014-03-29
SRFI-8の紹介
›
( LISP Library 365 参加エントリ) SRFI-8は多値の束縛を扱う構文receiveを提供します。R5RSでは多値はcall-with-valuesでのみ規定されています *1 。 まずは、call-with-valuesで書いたものを見てみましょう。...
2014-03-24
マクロ展開器
›
最近R6RS/R7RSのマクロのエッジケースを攻め込むような呟きをTwitterで目にして、ちと本格的になんとかしないとなぁという気持ちに駆り立てられている。Sagittariusのマクロ展開器は(恐らく *1 )R6RSが要求しているものに完全には準拠していない。 現状でR...
2014-03-21
SRFI-6の紹介
›
( LISP Library 365 参加エントリ) SRFI-6 は基本的な文字列ポートを定義したものです。Ratinaleには1986年から使われているAPIとかかれているので歴史のあるものをSRFI化したものといえるかもしれません。 このSRFIで提供される機能は2...
2014-03-17
偏見
›
TLCで All-American Muslim という番組を見たのだが、これをみて自分の中にものすごい偏見があることに気付かされた。宗教的な偏見を持っているのというは自覚してたんだけど、今回発見したのは言語的な部分。 それは、アラビックな人たちが喋る英語は訛っているという偏...
2014-03-07
json-toolsの紹介
›
( LISP Library 365 参加エントリ) 今回は拙作 json-tools の紹介です。json-toolsはR6RSといくつかのSRFIのみで書かれたJSONを扱うためのライブラリです。SSAX及び JSONSelect の影響を受けて作られています。 イン...
2014-03-04
続々 コンパイラのバグ
›
いろいろ考えていたら、破壊的に環境を変更するものの今よりもはるかにすっきり書けることに気づいた。(ってか既に書き換えた)っで、次の一手として局所マクロを何とかしてしまおうという話。 とりあえず何をしたか。 問題になっていたのは内部defineとdefine-syntaxそれ...
2014-03-03
続 コンパイラのバグ
›
一つ前の 投稿 でコンパイラのバグについて書いた。週末を利用して先に展開するのを試してみたのだが見事に穴にはまったので記録しておく。 問題になったのは、マクロの展開とコンパイラの環境が密な関係にあることである。マクロ展開時にはコンパイラが集めた環境フレームを利用しているのだが...
2014-03-01
コンパイラのバグ
›
マクロのバグを直していて以下のようなコンパイラのバグにぶち当たった。 (let () (letrec-syntax ((a (syntax-rules () ((_) 'foo))))) (print (a))) ;; -> prints 'foo...
2014-02-28
読書感想文(All You Need Is Kill)
›
となりのヤングジャンプとヤングジャンプで連載されてる 漫画 の原作。漫画読んで原作を読みたくなったのはかなり久しぶりである。5月に日本に帰るのでそのときに買えばよかったような気もするが、はやる気持ちは1年前にもらったギフトカードを使ってAmazon.deでの英語版の購入...
2014-02-26
R6RSのマクロ展開フェーズ
›
日本語で解説してる記事があまりにも少ないのと、これを毛嫌いしてる人が多いので何か書いてみる。随分前にチラッと書いてたりするが、単なる調査用の記事だったのである程度まじめに解説する。英語だと これ が詳しい。 はじめに、なぜフェーズなどというものが必要か? R6RSでは低レベ...
2014-02-16
SRFI-5の紹介
›
( LISP Library 365 参加エントリ) SRFI-5はletの拡張SRFIです。正直使ったことない上に、Sagittariusでは0.5.2になって(ほぼこの紹介記事を書くためだけに)サポートされたものだったりします。なので、ちょっと触ってみたレベルで紹介記事を...
2014-02-14
Sagittarius Scheme 0.5.1リリース
›
Sagittarius Scheme 0.5.1がリリースされました。今回のリリースはメンテナンスリリースです。 修正された不具合 マクロの可視性に関する不具合が修正されました datum->syntaxによって生成されたシンボルが非可視になる不具合が修正されまし...
2014-02-13
Introduction of JSON tools for Scheme
›
I'm writing a library which can query JSON. It's still under development state but a bit of sample code wouldn't hurt so let me ...
2014-02-10
Integrated R6RS record to CLOS
›
I have made a sort of huge change for Sagittarius in these couple of days and that is now R6RS record can be used with generic functions. So...
6 comments:
SRFI-4の紹介
›
( LISP Library 365 参加エントリ) SRFI-4はSchemeで整数データ、及び浮動小数点専用ベクタを扱うSRFIです。 用意されているデータ型としては、u8、s8、u16、s16、u32、s32、u64、s64、f32及びf64です。最後二つ以外は数値の整...
2014-02-06
マクロのバグを非常にひどい方法で解決したのでメモ
›
どこかにメモしておかないと忘れるw 一つ前の記事 でaifのitがマクロにくるまれるとうまく参照できないというバグの話をしたが、一応直したのでメモ(というか、FIXME的な何か・・・)。 どうしたか。 問題はマクロ展開時に生成される識別子の環境が不十分なために参照する際...
2014-02-03
Schemeのマクロにおける変数参照についてのメモ
›
自分の考えをまとめるためのメモ。主にSagittariusでの実装の話。 Schemeは変数のシャドウイングがある。そのためコンパイラが適切に変数を参照するためにはそれがどこで束縛されたかを知っている必要がある。これだけなら環境はスタックのように束縛された変数を持っておき、上...
2014-01-24
SRFI-2の紹介
›
( LISP Library 365 参加エントリ) SRFI-2 はand-let*と呼ばれるマクロを提供する。例えば以下のようなコードを書いたことはないだろうか? ;; make upcase symbol of car part if it's symbol ...
2014-01-20
風車の中
›
ライデンにはオランダ最古(だったはず)の風車があるのだが、長年外から眺めるだけで中に入ったことはなかった。先日偶然にも開いていたので(もちろん有料だけど)、せっかくだと思い中に入ってみた。 とりあえず、写真 展望台(?)から臨むライデンの街並み(一眼レフとかだともう少し...
2014-01-17
Sagittarius Scheme 0.5.0 リリース
›
今回のリリースはマイナーバージョンアップデートリリースです。また、リポジトリ及びダウンロードの場所が変更されたので注意して下さい。 ダウンロード 修正された不具合 importがcond-expand内でR7RSが要求するように動かなかった不具合が修正されました Lin...
‹
›
Home
View web version