ErlangのVM上で動作する、文法はRubyのようなものですね。
- WebPage
- GitHub
Erlangの資産を使えます。ErlangはConcurrencyな処理では以前より使われていると聞くので、Rubyをそのような方面でも使えるようにといったコンセプトでは面白いですね。
exercismでは、Elixir向けの問題も提供しているので、少しやってみました。
以下のような感じでコードがかけます。
defmodule Teenager do
def hey(input) do
cond do
String.upcase(input) == input &&
( Regex.match?(~r/[A-Z]+[^\?]\z/, input) || Regex.match?(~r/[\w]+[^\?]\z/u, input)) ->
"Whoa, chill out!"
Regex.match?(~r/\?\z/, input) ->
"Sure."
Regex.match?(~r/\A\s+\z/, input) || input == "" ->
"Fine. Be that way!"
true ->
"Whatever."
end
end
end
Gistはこちら: https://gist.github.com/KazuCocoa/b2c3d910d33c16210fc1
Rubyを少し書いたことがあると、大きくつまづくことはなさそう。
なるほどね。