プログラミング言語Cyan
非S式の構文にLispのマクロを導入した言語です。
http://www.geocities.jp/takt0_h/cyan/index.html
ブロックはインデントによって表されます。
インスタンスベース・オブジェクト指向や継続といった概念が含まれています。
U-20プログラミング・コンテストに言語処理系が入っていたおぼえはあるけど、どんなものかみてなかった。
Lispマクロ + インデント文法 + プロトタイプベースって、やられたって感じだなあ。
Cyanを設計した高校生、5カ月で5つの言語を習得 − @IT自分戦略研究所
当時、オブジェクト指向はクラスベースという固定観念があったのですが、プロトタイプベースを知ったときにオブジェクト指向は広い意味でもっと面白いものだと思いました。Lispの第一印象は「変な言語」。後にプログラミング言語を作ろうとしてもう1度学び直したとき初めてLispの面白さが分かりました。
Javaで書いたものを引き続きC#で書くよりは、もう1度書き直そうと思いました。Javaを使うのは飽きたというか、Javaは遊び心がないかなと思って。その点C#はちょっとユーモアがあるので。
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/03/01.html
個人的には、5ヶ月で学んだTTSneo、HSP、C、C++、Javaよりも、その後の学び方の方がセンスがある気がする。
Cyan クイックチュートリアル
無名関数fn = ^(x): say x fn("foo") #=> foo lst = [1, 2, 3].map^(x): x ** 2 say lst #=> [1, 4, 9]http://www.geocities.jp/takt0_h/cyan/doc/tutorial.html
lambdaに^を割り当てるあたりも、通だ。