S 式について詳しく解説

意味

S 式(またはシンボリック式) は、プログラムのデータまたは式をテキスト形式で表すための規則です。 S 式は、 Schemeや DSSSL などのLispファミリの言語で使用されるほか、IMAP やJohn McCarthyの Common Business Communication Language (CBCL) などの通信プロトコルのメタ言語としても使用されます。構文の詳細とサポートされるデータ型は言語によって異なりますが、最も一般的な特性は括弧で囲まれた接頭辞表記 (親しみを込めてケンブリッジポーランド語表記として知られています) の使用です。

 S 式について詳しく解説

Lispとの関係

Lisp では、S 式はコードとデータの両方に使用されます。 S 式は元々、プログラマーが使用する M 式の機械表現 (具体的な構文) として設計されました。しかし、Lisp プログラマはすぐにs 式をデフォルトの表記法として使用しました。

S 式は、数値、 niltを含む Lispアトム、(x.y) で示されるペアなどの単純なオブジェクトにすることができます。リストは、 (1 . (2 . (3 . nil)))のようにペアで形成でき、 (1 2 3)と書くこともできます。

したがって、プログラム コードは括弧で囲まれた接頭辞表記を使用して S 式で記述することができます。

Lisp での例:

(defun 階乗(x)
(条件
((等式 x 1) 1)
(t (* x (階乗 (1- x)))))

スキームの例:

((階乗 x) を定義
(if (= x 1)
1
(* x (階乗 (- x 1)))))

Lisp 構文の S 式の選択により、この言語ファミリーは、仕様に影響を与えたりコンパイラを変更したりすることなく、言語のセマンティクスを拡張 (特別な演算子、コード アナライザーなどの追加) できる強力なマクロ システムを提供できます。 (または通訳)。これは、M-Expression がほとんど使用されていない理由を説明しています。

 S 式について詳しく解説

XML を使用したレポート

S 式は、XML と同じ問題を、はるかに軽量かつ 40 年も先んじて解決すると言う人もいます。したがって、S 式は、(Lisp のような) コードの形式としてだけでなく、データの形式としても使用できます。ただし、(JSON や YAML などの他の XML 競合製品とは異なり) さまざまな要素にラベルを付けることはできません。 Lisp プログラム:

(ラムダ(x)(*2x))

XML では次のように記述することができます ( http://homepages.inf.ed.ac.uk/wadler/ language.pdfより)。




×



*

2
×




 S 式について詳しく解説
  1. Nuus – afrikaans
  2. The – – – – – ancien anglais
  3. خبر (إعلام) – arabe
  4. ܛܐܒܐ – araméen
  5. Noticia – asturien
  6. Xəbər – azerbaïdjanais

S 式について詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。