時の羅針盤@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-04-29
カラツバ法
›
CourseraのAlgorithm Part1で出てきてふと実装熱が再燃した。 カラツバ法 はかなり面白い乗算のアルゴリズム(と個人的に思っている)で、最初見たときはいきなり意味不明なことしてるぞ、とか思ったりした。アルゴリズムの肝は以下のような感じ。 ;; multip...
2014-04-26
SRFI-11の紹介
›
( LISP Library 365 参加エントリ) SRFI-11は多値を扱う構文です。このSRFIでは let-values と let*-values という構文を提供します。多値を扱う構文といえばすでに SRFI-8 を紹介していますが、こちらは構文の名前がもう少しだ...
2014-04-24
厄介めなバグ
›
「厄介め」という言葉があるかどうかは別にして、そこそこどうしようかなぁと思わせるバグを発見してしまった。 端的には以下のようなコードが問題になる。 (read (open-string-input-port "#!r6rs #t")) (call-wit...
4 comments:
2014-04-16
プログラミングスタイル
›
多少時期を逃した感はあるが、最近「 オブジェクト指向 v.s. 関数型プログラミング 」というHaskel最高っていってる記事を読んだ *1 。僕はオブジェクト指向も関数型プログラミングも中の中くらいの凡々プログラマなのだが、ふと10年くらい前に「これからはオブジェクト指向、手続...
2014-04-11
SRFI-10の紹介
›
( LISP Library 365 参加エントリ) SRFI-10 は読み込み時にオブジェクトの構築を行う仕組みを提供するSRFIです。 Common Lispでいうところの #. を提供するものです。比較の項目を見るとCLとの違いが書いてあります。端的に言えば defin...
2014-04-09
Set, bag and comparator
›
I've implemented new final SRFI 114 (not sure if this is really final state since there was no call for final from author...). You may ...
2014-04-04
SRFI-9の紹介
›
( LISP Library 365 参加エントリ) SRFI-9 はレコードの定義を行う最初のSRFIです。最初といったのはSRFIでのレコード型の導入は4つあり、SRFI-9はその最初のものだからです。 では使い方を見てみましょう。 (import (srfi :...
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 ...
‹
›
Home
View web version