プログラミング言語Cyan

Cyan, Yet Another New language - takuto_hの日記

新しい言語らしいのだけど。作者のプログラム暦約1年とかすごすぎね?
俺がプログラム暦1年の頃なんてたぶん予約語の書き取りとかしてたよ。
でもCyanなら予約語ないみたいなんで書き取りしないでいいですね。

fib = ^(n):
  if(n < 2):
    n
   else:
    fib(n-2)+fib(n-1)

say fib(15)

みんな大好きフィボナッチ。
インデントの感じが独特な印象かなあ。if>else>中身の順を守る必要あり。


特徴であるところのマクロとか試すべきなんだろうけどすみません(lisp的な)マクロ良く分かってないです勉強します。


ソースはC#書かれててRakefileがあるので試してみたらrake一発で普通にコンパイルできた。
せっかくなんでVC#でコンパイルしてみるに

CSC = "csc"
def options
  ["-out:#{DESTDIR}/Cyan.exe", *SRC_FILES.map{|e|e.gsub('/', '\\\\')}]
end

こんな感じに書き換え。Cygwin上でrakeでコンパイル通ってtest.cyも普通にOKだった。


あと関係ないけど

task "countline" do
  count =
    SRC_FILES.inject(0) do |count, name|
      print "#{name}: "
      puts c = IO.readlines(name).size
      count + c
    end
  puts "Total: #{count}"
end

行数数えるのはこんな感じのが好み。