#:g1: #lang algol60の紹介

Posted 2014-08-17 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の230日目です。

#lang algol60とはなにか

 #lang algol60は、Racketに標準で用意されているコードをAlgol 60の文法で書ける仕組みです。

パッケージ情報

パッケージ名#lang algol60
ドキュメントRacket: Algol 60

試してみる

 ソースコードに

#lang algol60

と指定するのみで以降がAlgol 60の文法として解釈されます。

#!/usr/bin/env racket

#lang algol60

begin procedure fib (n); integer n; begin if n < 2 then fib := n else fib := fib(n - 1) + fib(n - 2); end;

prints(`fib(10) => '); printnln(fib(10)); end

のようなスクリプトを書いて実行属性を付ければ、Algol 60をシェルスクリプトとして利用するようなこともできます。

$ /tmp/algol-fib.rkt
fib(10) => 55

 また、literal-algol式の中に文字列としてAlgol 60を記述することも可能です。その場合は、

(require algol60/algol60)

が必要です。

#lang racket

(require algol60/algol60)

(literal-algol "begin procedure fib (n); integer n; begin if n < 2 then fib := n else fib := fib(n - 1) + fib(n - 2); end;

prints(`fib(10) => '); printnln(fib(10)); end") ;>> fib(10) => 55

まとめ

 今回は、#lang algol60を紹介してみました。
やはりRacketの#langは羨しいですね。

comments powered by Disqus