Haskell勉強会

関数型プログラミングの学習日記

関数型プログラミングを学んで何を作るのか?

そもそもだけど、目的がスッポリ抜けていると、勉強にも身が入りませんね?w

何をやるために、関数型プログラミングを学ぶのか?を考えてみました。(本末転倒)

 

DApps(分散型アプリケーション)

最近…というほどでもないけど、「仮想通貨」「ブロックチェーン」「フィンテック」が流行しています。

金融系のサービスやアプリって、バグがあると大損害をもたらすから、バグのない完全なプログラムが求められているように思われます。

バグをなくすのに、銀の弾丸(万能薬)はないけど、関数型プログラミングは役立つと思います。

だから、金融系のサービスで関数型プログラミングが採用されているのだと解釈しています。

 

ブロックチェーンについて調べると、仮想通貨の一つ「Ethereum」(イーサリアム)は、いろんなアプリを作るためのプラットフォームになるそうです。

www.ethereum.org

 

イーサリアム - Wikipedia

イーサリアム(Ethereum)とは、分散型アプリケーション (DApps) やスマート・コントラクトを構築するためのプラットフォームの名称、及び関連するオープンソース・ソフトウェア・プロジェクトの総称である。

イーサリアムでは、イーサリアム・ネットワークと呼ばれるP2Pのネットワーク上でスマート・コントラクトの履行履歴をブロックチェーンに記録していく。

またイーサリアムは、スマート・コントラクトを記述するチューリング完全プログラミング言語を持ち、ネットワーク参加者はこのネットワーク上のブロックチェーンに任意のDAppsやスマート・コントラクトを記述しそれを実行することが可能になる。

ネットワーク参加者が「Ether」と呼ばれるイーサリアム内部通貨の報酬を目当てに、採掘と呼ばれるブロックチェーンへのスマート・コントラクトの履行結果の記録を行うことで、その正統性を保証していく。

このような仕組みにより特定の中央管理組織に依拠せず、P2P全体を実行環境としてプログラムの実行とその結果を共有することが可能になった。 

 

ブロックチェーンイーサリアム等のような仕組みを使うと、いろいろ便利なサービスやアプリが作れそうです。

 

とりあえず、何かDAppsを作ってみることを目的として、関数型プログラミングの学習を進めてみたいと思います。

(その他、何か作るときに、使えたら使ってみる!)