c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud 等に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開発中です。

Clojure で日本の祝日を引く library を作った

Clojure で日本の祝日を引く library を作った。

github.com

既に同様の library が Java に在る (holiday-jp/holiday_jp-java) が、今囘のものは JVM で動く Clojure だけではなく、Erlang VM (BEAM) 上で動く Clojerl、.NET で動く Clojure CLRJavaScript に transpile される ClojureScript に對應した。これが Java 版には無い特徴だ。祝日の data は holiday-jp/holiday_jp を使ってゐる。

holiday-jp/between で二つの日附の間に在る祝日を引ける。

(is (= [{:date #inst "2019-11-23T00:00:00.000-00:00"
         :week "土"
         :week_en "Saturday"
         :name "勤労感謝の日"
         :name_en "Labor Thanksgiving Day"}
        {:date #inst "2020-01-01T00:00:00.000-00:00"
         :week "水"
         :week_en "Wednesday"
         :name "元日"
         :name_en "New Year's Day"}]
       (holiday-jp/between #inst"2019-11-22" #inst"2020-01-02")))

他に holiday-jp/holiday?holiday-jp/on を實裝した。

複數の Clojure 實裝に對應するには、Clojure に reader conditionals と云ふ仕組みが有りこれを使ふ。

clojure.org

何故作ったのか、一つは個人的な練習の爲であるが、一つは Elixir で作ってゐた application を Clojerl に移植してゐ、それに使ふ爲だ。library を作ると責務が明らかに成る爲、test を明解に書けて好い (Library を作ると云ふ開発手法)

昔に Elixir で同等の library を作った (今でもメンテしてる!)。

github.com

Clojure のも暫く使へたら holiday-jp org へ移そうかと思ってゐる。