S式

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

S式(エスしき、: S-expression)とは、Lispで導入され、主にLispで用いられる、2分木ないしリスト構造の形式的な記述方式。SはSymbolに由来。

形式的には、S式は次のように定義される。

  1. シンボル(および、その他のアトムやデータオブジェクトのリテラル)はS式である
  2. (アトムの一種とする流儀もあるが) 空リストあるいはnilを表現する () もS式である
  3. (??? . ???) のように、S式をドットで区切り、丸カッコでくくったペアもS式である(2分木)
  4. 連結リストの形をした (??? . (???))(??? ???) のように、また (??? . ())(???) のように、省略した記法もS式である(リスト)
  5. その他の略記法。たとえば (quote foo)'foo など

S式は、Lispにおけるリスト構造を直接表現するものとしてジョン・マッカーシーによって考案された。S式は表記に大量の括弧を使用するため、非常に好き嫌いが分かれる[要出典]が、コードとデータを均質に記述し扱うのに便利で、また構造の解析が容易でマクロへの応用も幅広い。連結リストのみを表現するJSONのようなもの、とも言える。LispとS式は密接に結びついており、両者を分離しようとする試みもいくつかあったが、その元祖と言えるM式をはじめとしていずれも大きな成功と言うに至ったものはない。

関連項目[編集]