Schemeって何?

9LISPでは最初にSchemeという言語を勉強していきます。あれ?LISPじゃないの?実は、LISPにはたくさんの方言があるんです。

そぎゃんこつ言っても、おっどんな知らんばい。
You say such a thing, but I don't know it.


そう。日本語にたくさんの方言がありますね。プログラミング言語にも方言があるというのは、とてもオモシロイと思います。方言というのは、似てるんだけどチョット違う言語です。ホリのテリー伊藤のものまねは、似てるんだけどチョット違いますね。


LISPの方言で有名なものに、Common LispSchemeがあります。9LISPでは、最初にSchemeを扱います。Schemeはとってもシンプルで、それでいて奥が深い言語です。まるで、id:shunsuk(この記事を書いてる人)みたいですね。


Schemeの仕様はコンパクトで、Schemeを処理するプログラム(処理系と言います)を書くのも比較的カンタンです。おっと、カンタンだと言っても、素人が手を出すと火傷するぜ。9LISPでは、無謀にもSchemeの処理系を実装することも目標だったりします。


また、経験者が多く参考資料も多いので、かなーり学習しやすい言語だと言えましょう。ええ、きっとそうです。さあ、グダグダ言ってないで、この辺でSchemeの実際のコードを見てみましょう。ビックリしないでくださいね。比較のため、Rubyのコードから。

def add(a, b)
  return a + b
end

puts add(1, 2)


それでは、Schemeです。

(define (add a b)
  (+ a b))

(display (add 1 2))


どーですか?お客さーん!

ば!たいぎゃ括弧ん多か!
Oh, my god! There are so many parentheses!


これでも括弧の少ないコードを載せたんですよ。私は初めてSchemeのコードを見たときに、「戸田恵梨香俺の嫁」と思いました。でも、慣れたら括弧が見えなくなると9LISP発起人のvalvallowさんが言ってましたので、心配しないでください。


長くなりましたが、9LISPではLISPの方言のSchemeを勉強していきますと言いたかっただけです。ただ、それだけです。あと、戸田恵梨香さんは私の嫁ではありません。紛らわしいことを書いてしまったことを、深くお詫び申し上げます。