-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Yamasaki Tatsuya edited this page Aug 4, 2019
·
39 revisions
Meevax は Lisp-1 に分類されるプログラミング言語です。
言語機能の大半が R5RS Scheme を参考に設計されており、基本的な使い勝手はそれに準じています。 しかし、開発者の美的感覚に基づいて導入された少なくない数の非互換要素が存在しており、本文書はその解説を目的としています。
そのため、この文書にない言語意味論などの基本的な事項は Rivised^5 Report on the Algorithmic Language Scheme を参照してください。 R5RS と本文書で矛盾する記述は本文書のものが優先されます。 本文書に記述が無いにもかかわらず、R5RS の記述と異なる挙動が確認された場合、それは本文書のエラーです。
大雑把に言って、言語コアは以下の必要最小限度の機能のみを持ちます。
- プログラムリーダ
- SECD 仮想マシンおよび、そのコンパイラ
- 残りのすべての言語機能を構築するために必要なプロシージャおよびスペシャルフォーム
- ダイナミックリンカ
純粋な言語コアが提供するプロシージャおよびスペシャルフォームを以下に列挙します。 この内容は言語仕様がある程度固まるまで、頻繁に増えたり減ったりします。
バインディング | 効果 |
---|---|
begin | 逐次実行 |
call-with-current-continuation | 与えられたプロシージャを現在の継続を引数として起動する |
define | 変数定義 |
environment | 環境コンストラクタ |
if | 条件分岐 |
lambda | クロージャコンストラクタ |
quote | オブジェクト外部表現のリテラル化 |
set! | 代入 |
すべてのリストはペア型から構築されます。