Haskell

もうすぐ「はじめて学ぶ関数型言語」というHaskellの本が出版されるらしい。Amazonにはまだ登録されていないようだが、cbook24では予約できる。ちょっと気になるのでHaskellについて調べてみた。

http://www.geocities.jp/shido_takafumi/hs/index.html
http://web.yl.is.s.u-tokyo.ac.jp/~ganat/memo/aboutHaskell.html

Haskellの処理系にはコンパイラであるGHCと、インタプリタであるHugsがメジャーらしい。とりあえずHugsをインストールしてみた。

Home — The Glasgow Haskell Compiler
Hugs 98
http://cvs.haskell.org/Hugs/pages/users_guide/index.html

ソースからCheckinstallでインストールするとインタプリタが動かなかったので、SuSE用のソースRPMからビルドしてインストールした。

試しに簡単なスクリプトを実行してみたがエラーになる。どこが悪いのだろう?

#!/usr/bin/env runhugs

module Main where
import System

main = do av <- getArgs
    putStrLn $ "Hi, " ++ (av !! 0) ++ "!"

Squeak

そういえば前にSqueakをインストールしてあった。FluxBoxのメニューから起動できるようにしていなかったので、すっかり忘れていた。

ダウンロードして解凍したSqueakVMとイメージは/usr/local/Squeak3.7-7/に置いた。ホームディレクトリから起動するには長いオプションが必要なので、横着のために以下のようなスクリプトを書いた。

#!/bin/sh

export SQUEAK_IMAGE=/usr/local/Squeak3.7-7/SqueakPlugin.image
/usr/local/Squeak3.7-7/squeak -plugins /usr/local/Squeak3.7-7/

環境変数SQUEAK_IMAGEにはイメージファイルのパスを代入し、起動オプションに、-plugins [vm-display-X11のある場所]を与えて/usr/local/Squeak3.7-7/squeakを起動している。

本来はSmalltalkの勉強のためにインストールしたSqueakだが、普通にSmalltalkのソースをコンパイルする方法が分からない。(もしかしてできないんでしょうか?)
あれ、Smalltalkってインタプリタだっけ?