Nemerleが好さそう
今日知った機械言語Nemerleが好い感じ (Wikipedia).
C#のお仲間だけど, 細かなシンタクスとか, 漂ふ函數型の匂ひが私に好ましい.
メタプログラミンの機能が超豐富らしい(てかそれが一番の特徴)けど, 私は"メタプロ mo"状態なので今は觸りません.
取り敢へず書いた
はろわ
基本
System.Console.WriteLine("Helllo world!");
それっぽく
using System.Console; module HelloWorld{ Main() :void{ WriteLine("Hello world!"); } }
インデント中心のシンタクスも
#pragma indent using System.Console module HelloWorld Main() :void WriteLine("Hello world!")
これが滅っ茶嬉しい
部分適用とかパイプライン演算とか
#pragma indent def sum(a, b) a + b // "return"は不要 def succ = sum(_, 1) // 値を渡さない引き數はアンダスコアに 0 |> succ |> System.Console.WriteLine // 1
いつもの
フィボナチ數列 (with パターンマッチ)
def fib(_ :int) :int | 0 => 0 | 1 => 1 | n => fib(n - 2) + fib(n - 1) 10 |> fib |> System.Console.WriteLine // 55
fizz buzz
def fizzBuzz(n :int) :void for (mutable i = 0; i < n; i++) match ((i%3, i%5)) | (0, 0) => "FizzBuzz" |> WriteLine | (0, _) => "Fizz" |> WriteLine | (_, 0) => "Buzz" |> WriteLine | _ => i |> WriteLine 20 |> fizzBuzz
(これに關しては未だ巧い書き方が有りそう)
感想
()と{;}が嫌ひな私としては, かなり好みです(シンタクスしか見てない).
後はドキュメントが多ければね(C#やれ).