なんとなくKL1。

ドキュメントばかり読んでても全然わかった気にならないので、実際に簡単なコードを書いて走らせてみる。
コマンドライン引数を受け取って、そのままそれを表示しようとする。
引数の受け取りはunixモジュールの述語argvでできる。unix:argv(変数)とやると変数に引数のリストが帰ってくる。
出力はioモジュールの述語outstreamに組み込みの述語printを組み合わせて行う。io:outstream([print(変数), nl])で変数の中身出力。nlは改行コードを出力する述語。

:- module main.
main :- unix:argv(X), io:outstream([print(X), nl]).

1行目でmainモジュールであることを宣言、2行目に最初に呼ばれる述語mainを定義。
述語mainではコマンドライン引数をXへ受け取り、画面へ出力して改行する。
さてコンパイルして実行。

$ klic argv.kl1
$ ./a.out test
["test"]
$ ./a.out test test2
["test","test2"]
$

OKできた。まあ、これだけじゃ何の役にも立ちませんが、これでコマンドライン引数で入力を与え、結果をかえさせるための出入り口の使い方がわかった、と。