Learning Functional Programming (01)

2014-09-09 /

この投稿は私が関数型プログラミングを学ぶ上で参考になった情報や、学習のポイントをまとめたものです。

あつかう言語

  • Scala
  • Haskell

これまで使った技術

アプリケーション

  • Java and JavaEE 6
  • Python
  • Javascript

ネットワーク

  • MPLS
  • Openflow

これから使っていきたい技術

アプリケーション

  • Scalaz
  • Scalaz-Stream
  • Template Haskell (Macro)
  • WebSocketサーバ
  • XMPPサーバ

ネットワーク

  • OpenFlow 1.3
  • Path Computation Element Protocol
  • Border Gateway Protocol (and LinkState extension)
  • Locator Identifier Separation Protocol

目標

ネットワークプロトコルのフレームをSerialize/DesirializeできるようなeDSLの作成

これまでのポイント

  • とりあえずScalaやHaskellでの型設計はけっこう難しいと感じる
  • 変にOOPっぽさが残るので混乱をきたす
  • 基本的な関数型プログラミングの道具箱(filter, fold, map)を身につける
  • リスト処理には慣れる
  • しばらくPythonを書いて静的型付けへの揺り戻しが起こる
  • Haskellを使って自分用のTODO管理ツールを作成中