For Gauche 0.9.6


Next: , Previous: , Up: 主要な概念   [Contents][Index]

2.1 標準への準拠

Gaucheは、次に説明する少しの例外を除き、オプショナルな構文や手続きも含め "Revised^7 Report of Algorithmic Language Scheme" (R7RS) に準拠しています。

GaucheはR7RS以前から開発されているため、既存のGaucheソースコードの多くはR7RSの プログラムやライブラリの構造に従っていないことに注意してください。 Gaucheは、伝統的なGaucheのモジュール形式やスクリプトも、R7RS形式のプログラムや ライブラリも、両方解釈することができます。 R7RSがどのようにGaucheに統合されているかについては、 ライブラリモジュール - R7RS標準ライブラリを参照してください。

Gaucheはまた、以下のSRFIをサポートしています。

SRFI-0, 機能ベースの条件展開

R7RS smallに取り込まれました。Gaucheは組み込みでサポートしています。 機能条件式参照。

SRFI-1, リストライブラリ

これはR7RS largeの一部になりました。R7RSリスト参照。 SRFI-1の手続きのうちいくつかは組み込みになっています。

SRFI-2, AND-LET*: 局所束縛をともなう AND、ガード付 LET* 特殊フォーム

組み込みです。変数束縛参照。

SRFI-4, 一様な数値ベクタ型

モジュールgauche.uvectorsrfi-4の上位互換手続きを提供します。 同モジュールにはSRFI-4の手続きに加え、 算術演算やジェネリックなインタフェースが定義されています。ユニフォームベクタ参照。

SRFI-5, シグネチャとrest引数に互換性のあるlet形式

モジュールsrfi-5でサポートされます。 シグネチャとrest引数に互換性のあるlet形式参照。

SRFI-6, 基本文字列ポート

これはR7RS smallの一部になりました。 Gaucheは組み込みでサポートしています。文字列ポート参照。

SRFI-7, 機能ベースプログラム設定言語

オートロードされるマクロとしてサポートされています。 機能ベースプログラム設定言語参照。

SRFI-8, receive: 多値束縛

構文receiveは組み込みになっています。変数束縛参照。

SRFI-9, レコード型の定義

モジュールgauche.recordでサポートされます。レコード型参照。

SRFI-10, Sharp-comma外部フォーム

組み込みです。読み込み時コンストラクタ参照。

SRFI-11, 多値を受け取るための構文

これはR7RS smallの一部になりました。Gaucheは組み込みでサポートしています。 変数束縛参照。

SRFI-13, 文字列ライブラリ

モジュールsrfi-13でサポートされます。文字列ライブラリ参照。 (SRFI-13の手続きのいくつかは組み込みになっています。)

SRFI-14, 文字集合のライブラリ

これはR7RS largeの一部になりました。 文字集合と基本的な手続きは組み込みになっています。 文字集合参照。 SRFI-14の完全なサポートはモジュールscheme.charset で提供されています。R7RS文字セット参照。

SRFI-16, 可変長引数手続き構文 (case-lambda)

これはR7RS smallの一部になりました。 組み込みです。手続きを作る参照。

SRFI-17, 一般化された set!

組み込みです。代入参照。

SRFI-18, マルチスレッドのサポート

いくつかのSRFI-18の機能は組み込みであり、、残りのAPIは gauche.threadsモジュールで提供されます。スレッド参照。

SRFI-19, 時間データの型と手続き

時間のデータ型はGauche組み込みです(時間参照)。 SRFI-19の完全なサポートはモジュールsrfi-19で提供されています。 時間のデータ型と手続き参照。

SRFI-22, UNIX 上の Scheme スクリプトの実行

サポートされています。Schemeスクリプトを書く参照。

SRFI-23, エラー報告機構

これはR7RS smallの一部になりました。 組み込みです。例外の通知参照。

SRFI-25, 多次元配列のプリミティブ

モジュールgauche.arrayが、SRFI-25の上位互換と なっています。配列参照。

SRFI-26, カリー化をともなわないパラメータの特殊化記法

オートロードされるマクロとして定義されています。手続きを作る参照。

SRFI-27, ランダムビットのソース

モジュールsrfi-27でサポートされます。ランダムビットのソース参照。

SRFI-28, 基本フォーマット文字列

Gauche組み込みのformatがSRFI-28のものの上位互換に なっています。出力参照。

SRFI-29, 地域化

モジュールsrfi-29でサポートされます。 地域化参照。

SRFI-30, ネストした複数行コメント

これはR7RS smallの一部になりました。 ネイティブのリーダでサポートされています。字句構造参照。

SRFI-31, 再帰評価用の特殊フォーム rec

オートロードされるマクロとして定義されています。変数束縛参照。

SRFI-34, プログラムの例外処理

これはR7RS smallの一部になりました。 組み込みです。例外参照。 (但し、Gaucheはraiseに関してはsrfi-18のセマンティクスを文字通り 実装していて、それはsrfi-34と若干異なります。将来はsrfi-34に合わせるかもしれません。)

SRFI-35, コンディション

組み込みです。コンディション参照。

SRFI-36, I/O コンディション

部分的にサポートされています. コンディション参照。

SRFI-37, args-fold: プログラム引数処理

モジュールsrfi-37でサポートされます。 args-fold プログラム引数処理参照。

SRFI-38, 共有されるデータの外部表現

組み込みです。データの読み込み出力参照。

SRFI-39, パラメータオブジェクト

これはR7RS smallの一部になりました。 モジュールgauche.parameterでサポートされます。 パラメータ参照。

SRFI-40, ストリームライブラリ

モジュールutil.streamでサポートされています。 See ストリームライブラリ.

SRFI-42, 先行評価的内包表記

モジュールsrfi-42でサポートされます。 Eager comprehensions参照。

SRFI-43, ベクタライブラリ

モジュールsrfi-43でサポートされます。 ベクタライブラリ(旧式)参照。 註:このsrfiはR7RSのscheme.vectorライブラリ (srfi-133として導入されたもの)により置き換えられました。 R7RSベクタ参照。

SRFI-45, 反復的 Lazy アルゴリズムのための基本関数

組み込みです。 See 遅延評価.

SRFI-46, 基本的なsyntax-rulesの拡張

これはR7RS smallの一部となりました。 組み込みです。 See 衛生的マクロ.

SRFI-55, requireの拡張

オートロードマクロとしてサポートされます。 Requiring extensions参照。

SRFI-60, 整数に対するビット操作

ほとんどの手続きは組み込みになっています。ビット演算参照。 完全なサポートはsrfi-60モジュールで提供されます。 整数に対するビット操作参照。

SRFI-61, より汎用的なcond

組み込みです。条件式参照。

SRFI-62, S式コメント

これはR7RS smallの一部となりました。 ネイティブのリーダでサポートされています。字句構造参照。

SRFI-64, テストスイートのためのScheme API

モジュールsrfi-64でサポートされます。

SRFI-66, オクテットベクタ

モジュールsrfi-66でサポートされます (オクテットベクタ参照)。 ほぼgauche.uvectorのサブセットですが、 一ヶ所だけ違いがあります。

SRFI-69, 基本的なハッシュテーブル

モジュールsrfi-69でサポートされます (基本的なハッシュテーブル参照)。 このsrfiはR7RSのscheme.hash-table (srfi-125として導入されたもの) で置き換えられました。 詳しくはR7RSハッシュテーブルを参照してください。

SRFI-74, オクテット毎にアクセス可能なバイナリブロック

モジュールsrfi-74でサポートされます (Octet-addressed binary blocks参照)。

SRFI-78, 軽いテストフレームワーク

モジュールsrfi-78でサポートされます。 Gaucheは既に独自のテストフレームワークを持っているので(単体テスト参照)、 このモジュールは主としてサードパーティ製のモジュールがsrfi-78をテストに 使っている場合をサポートするためのものです。

SRFI-87, case節での=>

これはR7RS smallの一部となりました。 組込みです。条件式参照。

SRFI-95, ソートとマージ

組み込みです。ソートとマージ参照。

SRFI-96, SLIB必要事項

このsrfiはライブラリというよりは、SLIBをサポートするためにプラットフォームが 提供しなければならない機能要件を記述するものです。このモジュールをロードするためには、 SLIBが既にインストールされていることが必要です。 詳しくはSLIBインタフェースを参照してください。

SRFI-98, 環境変数にアクセスするためのインタフェース

モジュールsrfi-98でサポートされます。環境変数へのアクセス参照。

SRFI-99, ERR5RS レコード

モジュールgauche.recordでサポートされます。レコード型参照。

SRFI-106, 基本的なソケットインタフェース

モジュールsrfi-106でサポートされます。基本的なソケットインタフェース参照。

SRFI-111, ボックス

これはR7RS largeの一部となりました。 モジュールscheme.boxでサポートされます。R7RSボックス参照。

SRFI-112, 環境の問い合わせ

モジュールsrfi-112でサポートされます。 ポータブルな実行環境の問い合わせ参照。

SRFI-113, セットとバッグ

これはR7RS largeの一部となりました。 モジュールscheme.setでサポートされます。 R7RSセット参照。

SRFI-114, 比較器

いくつかの機能は組み込みです(基本的な比較器参照)。srfiの完全な仕様はモジュールsrfi-114でサポートされます(比較器参照)。

SRFI-117, リストを元にしたキュー

これはR7RS largeの一部となりました。 data.queue上に実装されたモジュールscheme.list-queueでサポートされます。 (R7RSリストキュー参照)

SRFI-118, 簡単な可変長文字列

モジュールsrfi-118でサポートされます。 (簡単な可変長文字列参照)

SRFI-121, ジェネレータ

これはR7RS largeの一部となりました。 Gaucheのgauche.generatorがsrfi-121のスーパーセットになっています。 (ジェネレータ参照)

SRFI-125, ハッシュテーブル中位層

これはR7RS largeの一部となりました。 scheme.hash-tableモジュールでサポートされます (R7RSハッシュテーブル参照)。 Gaucheの組み込みインタフェースも同じ機能を提供していますが、 既存のコードとの互換性のために名前が若干異なります (ハッシュテーブル参照)。

SRFI-127, 遅延シーケンス

これはR7RS largeの一部となりました。 scheme.lseqモジュールでサポートされます。 R7RS遅延シーケンス参照。

SRFI-128, 比較器 (縮小版)

これはR7RS largeの一部となりました。 組み込みです。基本的な比較器参照。

SRFI-129, Titlecase手続き

char-title-case?char-titlecaseは組み込みで、 string-titlecasegauche.unicodeモジュールにあります。 互換性のため、(use srfi-129)(import (srfi 129))とすれば この3つの手続きがインポートされます。

SRFI-131, ERR5RSレコード構文 (簡易版)

このsrfiはsrfi-99のサブセットで、gauche.recorddefine-record-typeでカバーされます。レコード型参照。

SRFI-132, ソートライブラリ

これはR7RS largeの一部となりました。 モジュールscheme.sortでサポートされます。 R7RSソート参照。

SRFI-133, ベクタライブラリ (R7RS互換)

これはR7RS largeの一部となりました。 モジュールscheme.vectorでサポートされます。 R7RSベクタ参照。

SRFI-134, 変更不可な両端キュー

これはR7RS largeの一部となりました。 モジュールdata.idequeがsrfi-134と互換です。 変更不可な両端キュー参照。

SRFI-141, 整数除算

モジュールsrfi-141でサポートされます。整数除算参照。

SRFI-143, Fixnumx

モジュールsrfi-143でサポートされます。Fixnums参照。

SRFI-145, アサンプション

組み込みです。条件式参照。

SRFI-146, マッピング

モジュールsrfi-146でサポートされます。 mappingとhashmap参照。

SRFI-149, 基本的なsyntax-rulesの拡張

組み込みのsyntax-rulessrfi-149に対応しています。

SRFI-151, ビット演算

モジュールsrfi-151でサポートされます (ビット演算参照)。 なお、組み込みでも多くの手続きについては同等の手続きが提供されています (基本的なビット演算参照).

SRFI-152, 文字列ライブラリ(簡略版)

モジュールsrfi-152でサポートされます (文字列ライブラリ(簡略版)参照)。

SRFI-158, ジェネレータとアキュムレータ

モジュールsrfi-158でサポートされます (ジェネレータとアキュムレータ参照)。 ジェネレータ手続きのほとんどは、gauche.generatorでもサポートされています (ジェネレータ参照)。


Next: , Previous: , Up: 主要な概念   [Contents][Index]