Skip to content
Yamasaki Tatsuya edited this page Aug 15, 2019 · 39 revisions

Overview

Meevax は Lisp-1 に分類されるプログラミング言語です。

言語機能の大半が R7RS Scheme そのままに実装されており、基本的な使い勝手もそれに準じています。 しかし、開発者の美的感覚に基づいて導入された少なくない数の非互換要素が存在しており、本文書はその解説を目的としています。

Language Core

大雑把に言って、言語コアは以下の必要最小限度の機能のみを持ちます。

  1. オブジェクト外部表現の内部表現化
  2. オブジェクト内部表現の外部表現化
  3. SECD 仮想マシンおよび、そのコンパイラ
  4. 残りのすべての言語機能を構築するために必要なプロシージャおよびスペシャルフォーム
  5. ダイナミックリンカ

Primitive Procedure and Special Forms

純粋な言語コアが提供するプロシージャおよびスペシャルフォームを以下に列挙します。 この内容は言語仕様がある程度固まるまで、頻繁に増えたり減ったりします。

バインディング 効果
begin 逐次実行
call-with-current-continuation 与えられたプロシージャを現在の継続を引数として起動する
define 変数定義
environment 環境コンストラクタ
if 条件分岐
lambda クロージャコンストラクタ
quote オブジェクト外部表現のリテラル化
set! 代入

Standard Libraries

Pair

すべてのリストはペア型から構築されます。

String

Array

File System

Clone this wiki locally