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

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

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

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

Elixirの優先度附きキューライブラリPQueue2を作った

pqueue2 | Hexを作った。

github.com

Erlangで書かれたpqueueに含まれてるpqueue2モジュールを、Elixirでラップしたもの。

q = PQueue2.new |> PQueue2.put(:a, 2) |> PQueue2.put(:b, 1) |> PQueue2.put(:c, 1)
{:b, q} = PQueue2.pop

CollectableとEnumerableも實裝したので次の書き方も出來る。

[:b, :c, :a, :d] == [{:a, 2}, {:b, 1}, {:c, 1}, {:d, 2}] |> Enum.into(PQueue2.new) |> Enum.to_list

Hexを檢索すると、優先度附きキューを實裝したと述べるライブラリは沢山在る。全てを試してみたが、正しく「優先度附きキュー」として動作するライブラリは、pqueueと、pqueueをラップしたものしか無い。あとは「優先度附き」ではあるが「キュー」として動作しない。pqueueをElixirでラップしたものは數年更新が停まってゐる。pqueueは最近でも更新されてゐる。そこでpqueueを使ふ事にした。pqueueはErlangで書かれてゐて、Elixirらしい使ひ方をするには不便だ。だからElixrでラップした。

PropCheckでproperty based testを書いたりした。