SKILL (プログラミング言語)
基本的な「Hello world」プログラムは以下のように記述する。
階乗を計算する関数は以下のようになる。
ここで、define のかわりに procedure(factorial n) としても正常に動作する。define と procedure に大きな違いはなく、define は procedure の一種である。procedure は最初の引数として関数名と引数を1つの引数と考えセットで取る。一方、define は最初の引数として関数名を取り、二つ目の引数で引数を取るようになっている。
C言語類似の書法では、長いプログラムコードでは、S式書法での等価なコードとは見かけが全く異なるものになる。
次の例は、特殊フォーム「setq」を使い変数へ代入する方法と、特殊フォーム「let」を使い変数スコープを区切る方法を示す。
変数 a と b は、特殊フォーム let で局所化されるが、変数 c は、そうなっていない。そのため、変数 c は、関数 swap の外からもアクセス可能。次のコードは関数 swap の実行結果として、変数 a、b、c の内容を出力したもの。
注釈は、伝統的な他のLISP系言語と同じく、セミコロン「;」で区切って書く。C言語などの他の言語と同じように長い範囲でコメントアウトしたい時には/* ~ */ といったコメント文も有効である。
また、C言語と同じ書き方もできる。