授業の方針


めざすもの

この授業では、関数型言語を扱います。 別に知らなくても困らないと思いますが、 大学で情報系を勉強しているのなら、少しは知っておきたい話だと僕は思います。 興味のある人には、しっかり理解してほしいとも思います。

ということで、 授業の内容は、(1)皆に本当に理解してほしい内容と、 (2)興味のある人には理解して欲しい内容と、 (3)興味のある人が自分でもっと先に進んで行けるような内容が含まれています。

今回は、 (1) についてはこの背景で、 (2) については、 の背景で、 (3) については、補足のページで説明することにします。

僕の個人的な関数型言語についての意見は、関数型の方が smart な感じがして、 一度関数型に触れると一般のプログラミングスタイルも奇麗になる気がします。 でも、普段は手続き型を使っているほうが多いです。

授業の進め方

僕は、一応、前でテキストの説明を行ないます。 ただ、自分で先に進めてもらって構いません。

授業中、質問などがある場合は、後に持ち越さないで早めに聞くようにしましょう。 僕としても、さらに分からない話を続けても虚しいですから。
分かり切った話を延々としているときも、早めに教えて下さい。 それはそれで、もっと虚しいですから。

ということで、質問は積極的にして下さい。直接でも mail でも OK です。 WEB Page の方にも反映して行くつもりです。

不正行為

出席に関して偽装をするのはやめましょう。
課題について、広くコピーをばらまくのは止めましょう。 以前、課題問題の解答を WEB page に載せていた人がいたそうですが、 他の人の為にならないのでやめて下さい。処罰の対象にします。
授業内容を補足する様な page を各自で掲載してくれる分には 全然構いません、というよりありがたいぐらいです。よかったら連絡して下さい。
課題問題に深く関わるような内容かな?と思ったときは、 事前に僕の方にまで連絡でも下さい。確認します。

なぜ scheme なの?

なぜ演習に Scheme を選んだかと言うと、 関数型言語の勉強を短い時間でやりたかったからです。

ML でも良かったのですが、 型についてきちんと教える時間がないまま、ML を使うのは悲しいので、 それなら lambda 式などの知識をしっかり教えたほうがいいと思い、 Scheme を用いることにしました。 他の Lisp 処理系(Common Lisp, Emacs Lisp等)にしなかったのは、 美しい言語で教えたかったからです。

それはさておき、興味があったら他の言語も使ってみると良いです。 ML は良い言語ですし、処理系も結構速いですし、 研究もいろいろありますし魅力的な言語です。 Common Lisp や Emacs Lisp も、とっても実用的な言語です。 興味があったら自分で使ってみて下さい。


99.9.29/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp