第1回目の授業の記録を追ってみよう。
Haskellの先生が、Chris Smithさん。
そして、Sue Spenglerさんがこの学校の創立者、校長、秘書その他何でも屋さんのようである。
何か、ちょっと変わった学校のような気がする。
まあ、Haskellを子供に教えようという学校だから、そういうことくらい当然あるだろう。
とりあえず、どうやったらHaskell遊びができるのか、斜め読みをしてみた。
子供が(大人も)簡単にお絵描きをHaskell+Glossで試せるページが公開されている。
http://dac4.designacourse.com:8000/sim
ここでは、いくつかの選択があるのだが、Pictureを選んで、ちょっと実験したいことを書き込んで、Runボタンを押すと、右側半分がグラフィック画面になって、そこに指示した絵が出てくるようになっている。これを使えば、面倒なインストールの作業もいらない。
最初に説明されるのが、以下の2行だ。
import Graphics.Gloss
picture = circle 80
ということで、理解しなくてよいから、とにかくこれを入れて、Runボタンを押してみると円が表示された。
ちゃんと円が出たようなので、OKのはずだ。
後は、ここにいろいろなことを書けば、複雑な絵だって、大丈夫なのではないだろうか。
で、次にやることは当然、このWebページを使わず、ghciから直接動かすことだ。
ということで、上の2行を入れてみた。
Prelude> import Graphics.Gloss
Prelude Graphics.Gloss> picture = circle 80
<interactive>:3:9: parse error on input `='
これはダメなんだ。
やりたいことは円を描くだけだから、circle 80 だけ入れてみよう。
Prelude Graphics.Gloss> circle 80
Loading package array-0.4.0.0 ... linking ... done.
Loading package deepseq-1.3.0.0 ... linking ... done.
Loading package OpenGLRaw-1.3.0.0 ... linking ... done.
Loading package GLURaw-1.3.0.0 ... linking ... done.
Loading package ObjectName-1.0.0.0 ... linking ... done.
Loading package StateVar-1.0.0.0 ... linking ... done.
Loading package Tensor-1.0.0.1 ... linking ... done.
Loading package OpenGL-2.6.0.1 ... linking ... done.
Loading package containers-0.5.1.0 ... linking ... done.
Loading package GLUT-2.3.1.0 ... linking ... done.
Loading package bytestring-0.10.0.1 ... linking ... done.
Loading package binary-0.5.1.1 ... linking ... done.
Loading package bmp-1.2.3.2 ... linking ... done.
Loading package gloss-1.7.7.1 ... linking ... done.
Circle 80.0
Prelude Graphics.Gloss>
いっぱいロードしてくれたけれど、Circle 80.0 と表示されただけで、グラフィックスウィンドウが出て、そこに円が出るなんてことは起きなかった。
子供向けの授業では、ghcから直接glossを使う方法が書かれていないようなのだ。
次回までに、ghc/ghci から直接glossを楽しむ方法を調べておこう。