アルゴリズム
Web
Elm
関数型プログラミング
データ構造

関数型アルゴリズムとデータ構造をElmでたのしく学ぼう!

こんにちは!皆さんはアルゴリズムとデータ構造はお好きですか?私は好きになりたいのになれないタイプの人間です・・・。手続き型でアルゴリズムを組んでいると頭がこんがらがりますし競技プログラミングの問題は少し難しくて、ストイックではない自分には厳しい世界です(もちろんハマれる方はどっぷりハマれて、とても楽しそうに見えます!)。

そこで私はElmのチカラを借りてエディタ(ビューワ)を作り可視化することで、たのしくアルゴリズムとデータ構造を学ぶことにしました!今回のテーマは二分探索木」。エディタづくりに入る前はTDDでたのしくテストコードを書いたりもしていました。ちょっと工夫した点は、SearchInsert時にどのようなステップを踏んだかをアニメーションで可視化したり、乱数でツリーを作るということをしてます。以下のリンクで公開しているので是非楽しんでみてください。

https://binary-tree-elm.netlify.com/

binary-tree.gif

今回のソースコードはこちらになります。

是非参考にしてElmでアルゴリズムライフを楽しんでみてください。デザインやアルゴリズム改善のPRも楽しみに待ってます。これからもいろんなデータ構造を可視化していきたいですね!