Elixir
東京にいるけどFukuokaexのYOSUKEです。
簡単 Elixirシリーズでは小ネタをサクッと書いていこう。というコンセプトで作っていきます。
仕事柄、Elixir以外の言語を使ってサンプルコードを作成する。または教材を作ることをやっています。最近、うるう年か否かを返してくれる関数を作りなさい。というお題のJavaScriptのコードを書いたので、Elixirで書くとどうなるか?を試してみようという記事です。(そう、この記事はサクッとがコンセプトW)
お題は、isLeap("2004")
という関数を実行して、true
のような結果を返すものです。
まずは、JavaScriptのコードを見てみましょう。
function isLeap(string){
const year = parseInt(string,10)
if(year%4===0){
if(year%100===0){
if(year%400!==0){
console.log(false)
return false
}
}
console.log(true)
return true
}
console.log(false)
return false
}
これをElixirにしてみます。
defmodule Judgment do
def isLeap?(string_year) do
string_year
|> String.to_integer
|> Date.new(1,1)
|> elem(1)
|> Date.leap_year?
end
end
こんな感じでしょうか? 他にも色々な書き方はあると思います。