Amiga、REBOLの思想を引き継ぐスクリプト言語「Red」 --導入編

海上忍
2012-01-13 08:00:00
  • このエントリーをはてなブックマークに追加

 1985年にデビューしたAmiga OSのカーネル開発の中心人物Carl Sassenrath氏が手がけるプログラミング言語「REBOL」。そのREBOLにインスパイアされて開発したスクリプト言語「Red」は、マルチプラットフォーム指向の言語だ。

 前回の連載ではその成り立ちを紹介したが、今回はRedのインストールと簡単なテストを行う。まずはサイトからREBOLの最新版コア(rebol-core-278-2-5.tar.gz)をダウンロードし、適当なディレクトリに展開してみよう。

 バイナリが1つ収録されているので、それをパスの通ったディレクトリ(ex. /usr/local/bin)へコピーすれば、導入作業は完了だ。

$ tar xzf rebol-core-278-2-5.tar.gz
$ sudo cp releases/rebol-core/rebol /usr/local/bin/

 次に、サンプルコードをダウンロードする。「Downloads」タブを選択し(Sorry~ とメッセージが現れるが気にしない)、「Download as tar.gz」ボタンをクリックすれば、 githubからRedの最新版アーカイブ(dockimbel-Red-v0.2.3...、ファイル名は適宜読み替えてほしい)がダウンロードされる。

$ tar xzf dockimbel-Red-v0.2.3-48-ga8de317.tar.gz
$ cd dockimbel-Red-a8de317/

 これで、REBOLとRedをテストする環境はひととおり整った。サンプルコードの利用はひとまず置き、まずはREBOLの基本的な用法から説明しておこう。

 先ほどインストールしたREBOLは、Rubyにおけるirbに似た対話型インタープリタとして機能する。Lionの初期設定では、/usr/local/binにパスが通っているはずなので、以下のコマンドを実行するだけでREBOLの対話モードが開始される。

$ rebol

 REBOLの文法に関するドキュメントは、本家ウェブサイトの「REBOL Documentation」に詳しい。具体的な命令/コマンドは後で覚えることにして、「REBOL in One Line」に記載されたスクリプト(1行プログラム)を実行すれば、どのような使い方が可能かうっすらと見えてくることだろう。

 たとえば、以下のスクリプトを実行すると、引数に与えた文字列のうち6文字をランダムに抽出する。

>> copy/part random "abcdefghijklmnop" 6
== "gpbaef"

 関数の定義も可能だ。たとえば、以下のスクリプトを実行すると、引数に与えた年月日から曜日を求める関数「Weekday?」が定義される。

>> Weekday?: func[Date[date!]][pick system/locale/days Date/weekday]
>> Weekday? 10/Jan/2012
== "Tuesday"

 一方、今回インストールしたREBOLにはGUIライブラリが付属しないため、命令「view」を含むスクリプトは実行できない。ここまで来れば、Red/System Language Specificationに記述された内容も飲み込みやすいことだろう。

>> view layout[origin 0 t: h1 red black (to string! now/time) rate 1 feel[engage: [t/text: now/time show t]]]
** Script Error: view has no value
** Near: view layout [origin 0 t: h1 red black (to string! now/time) rate 1 feel [engage: [t/text: now/time show t]]]

 次回は、実際にRedのサンプルコードを実行しながら、その特徴と可能性をお伝えする予定だ。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]