For Development HEAD DRAFTSearch (procedure/syntax/module):

11.70 srfi.258 - インターンされないシンボル

Module: srfi.258

このSRFIは、インターンされないシンボルについての共通のインタフェースを定義しています。

インターンされないシンボルとは、内部の名前からシンボルへのハッシュテーブルに登録 されないシンボルのことです。通常のシンボルは名前が登録されているので、 同じ名前のシンボルを読んだらそれがシンボルとしてeq?になることが保証されています。 インターンされないシンボルは、そのシンボルへの参照を直接受け渡しする以外に、 eq?であるシンボルを入手する方法がありません。

インターンされないシンボルは、レガシーなLispマクロにおいて名前の衝突を避けるために 便利に使われてきました。マクロ展開時に作られたインターンされないシンボルは プログラム中の他のシンボルと決して衝突しないからです。

Schemeには衛生的マクロシステムがあるので、マクロで名前衝突を避けるために インターンされないシンボルを使う必要はありません(マクロ参照)。 それでも、Gaucheを含む多くのScheme実装ではこの機能を提供しています。 他のLispのイディオムを移植したり、単に実行時にユニークなオブジェクトを得るのに 便利だからです。

このSRFIは、インターンされないシンボルを提供している実装間でポータブルな インタフェースを提供するためのものです。

Gaucheでは、SRFI-258のうち次の2つの手続きは組み込みです。

string->uninterned-symbol
symbol-interned?

詳しくはシンボルを参照してください。

Function: generate-uninterned-symbol :optional prefix

[SRFI-258]{srfi.258} 新たなインターンされないシンボルを作って返します。 gensymと似ていますが、こちらはprefixにシンボルも文字列も使えます (See シンボル参照)。



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT