阿房峠

tunaguinfoのブログ

Android で Scheme

Here's a preliminary version of Gambit Scheme for the Android platform, inspired by Marc Feeley's iOS version.
Gambit Scheme is a "complete, portable, efficient, and reliable implementation of the Scheme programming language, conforming to the R4RS, R5RS and IEEE Scheme standards, and implementing all optional features. Tail calls and first class continuations conform to the Scheme semantics. The full numeric tower is implemented, including: arbitrary precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers."
Gambit for Android includes the ability to interact with a Gambit Scheme REPL (read-evaluate-print-loop), add and save Scheme scripts, and start and telnet into a REPL server running on the device.

Gambit for Android - Google Play の Android アプリ

 

PCが手元にあるときは Common Lisp でも Scheme でも実行環境があるからいいのだけど、枕元とかで本を読んでいる時に関数を試してみたい時があって、以前から ○○lispとか○○Scheme とかを Nexus7 に落としては試していた。実際に関数を入れてみると例題にある式と返り値が違っていたり、組み込み関数?がなかったりでがっかりするのだった。

ついに今日は使える環境にたどり着いて、上記の Gambit で紫藤さんのもう一つのScheme入門を楽しんでいる。3章までの四則演算やリストの評価もテキストとおりに返ってくる。楽しい。

 

メモ Windows で Common Lisp の練習環境は Xyzzy

見出のとおり、日本のWindowsユーザには Xyzzy という Common Lisp 環境があるじゃないですか、というネタ。

 

AutoLISP と Common Lisp と代入 - 阿房峠 で挙げたとおり、AutoLISPがCommon Lisp のサブセット+図形編集コマンドであるとすると、再帰も使えるのではないかと考えているのだけど、再帰を使った AutoLISP のコードはまだ見てない。再帰じゃなくて多分 while で記述できるだろうし、AutoCADのユーザはたぶんCとかVBとかVBAとかの手続き型の言語を使っている人が多いだろう。

探し方が悪いだけできっとあるのだろう。検索キーワードも"再帰"と漢字なので英語の検索はしていない。AutoLISPで再帰がつかえたらなんかいいのかと聞かれても、何も返せない。悟りが開けるらしいとか、……云々。

自分のことを挙げれば関数の展開がわかっていない。返り値の格納場所とか言ってる時点で多分間違い。関数が鉛筆で解けない。だから再帰がわからないし頓珍漢な答えをだすのだ。

でも、AutoLISP ではメニューマクロの置き換え位はできるようになった。ところが公開されている AutoLISP が読めてはいない。コードを追って値がどうなっているのか説明できる自信がない。ということで、他のLISPで何かをつかめればいいなあと思うのだった。

お盆の間は 「Land of Lisp」 をやって、「リスト遊び」と「もう一つのScheme入門」を読んでいたのだけれど困ったのは実行環境だった。Emacs は使っているから EmacsLisp は困らないのだけれど Land of LispCLISP で書かれているので CLISPの実行環境がいる(ちなみにSchemeはNexus7で実行してる)。ところが本文で示されたURLは"帯域使い杉"とかで制限されてる。仕方なくgoogleで検索してlispboxの中のclisp.exeだけ使ったりするんだけど、これってマニアック過ぎないのだろうか。WindowsユーザでLispをやってみたい人はみんなEmacsな人なのだろうかと思ったところで、気がついた。

Xyzzy がありました。しかも、XyzzyCommon Lisp 入門 も Makoto HIROI さんが作ってくれてる。これがいいんじゃないかな。今晩帰ったら早速始めたいと思います。そのためのメモ。

 

xyzzyWindowsで動作するテキストエディタEmacsと一般的なテキストエディタの利点を取り込んでいる。作者は亀井哲弥。マクロ言語としてCommon Lisp系のxyzzy Lispを実装しており、高機能なLisp処理系としての側面も持つ。現在は派生版の開発が続いている。

xyzzy - Wikipedia

 

xyzzy はカスタマイズ可能で軽快な Windows 用のテキストエディタのようなものです。 作者も使ったことのないような機能を満載しています。

xyzzy - カスタマイズ可能で軽快な Windows 用テキストエディタ

 

Xyzzy Wiki
亀井さん作成のエディタxyzzyに関する情報をまとめるwikiです。オフィシャルなwikiでは無いのでご注意ください。

FrontPage - XyzzyWiki

 

はじめに

xyzzy は 亀井哲弥氏 が作成された Emacs 系のエディタです。xyzzy に搭載されている Lisp (以後 xyzzy Lisp と記述) は、Lisp の標準である Common Lisp に準拠 [*1] している優れた処理系です。この xyzzy Lisp を使って、Lisp でプログラミングを楽しもうというのが本ページの趣旨であります。Lisp は初めてという方は Common Lisp 入門 を読んでみてください。Common Lisp の基本を詳しく説明しています。

M.Hiroi's Home Page / xyzzy Lisp Programming

 

そして、Lisp をすすめる最大の理由が、プログラミングが簡単でとても面白いからです。少し勉強しただけで、プログラムを作ることができるようになります。Emacs Lisp は仕様が旧式なため少々使いにくいところがありますが、xyzzy Lisp ならば大丈夫です。優秀な処理系が身近にあるのですから、これを機会に Lisp の世界に足を踏み入れてみましょう。

M.Hiroi's Home Page / xyzzy Lisp Programming Common Lisp 入門

 

丸善に来たからって舞い上がって、Land of Lisp を買うんじゃなかった。まずは、XyzzyCommon Lispだったな。ずいぶん遠回りしたものだ。