Slide 1

Slide 1 text

Situated Program Challenge with Haskell & Clojure

Slide 2

Slide 2 text

Self-introduction /laʒenɔʁɛ̃k/ カマイルカ lagénorhynque (defprofile lagénorhynque :name "Kent OHASHI" :languages [Clojure Haskell Python Scala English français Deutsch русский] :interests [programming language-learning mathematics] :contributing [github.com/japan-clojurians/clojure-site-ja])

Slide 3

Slide 3 text

Blog Posts REST server (Haskell/Yesod) REST server (Clojure/Duct) REST client (Clojure & Haskell) ClojurianがHaskellでWeb API開発に⼊⾨してみた ClojureのDuctでWeb API開発してみた ClojureとHaskellで簡単なコマンドラインツール (RESTクライアント)を作ってみた

Slide 4

Slide 4 text

Source Code Haskell version Clojure version https://github.com/lagenorhynque/situated- program-challenge/tree/hs-version1 https://github.com/lagenorhynque/situated- program-challenge/tree/clj-version1

Slide 5

Slide 5 text

hs-version1 & Haskell Yesod

Slide 6

Slide 6 text

Features type safety type-safe routing ( ) type-safe JSON manipulation ( , ) type-safe DB/SQL manipulation ( , ) metaprogramming (cf. Lisp macros) Yesod aeson lens Persistent Esqueleto Template Haskell

Slide 7

Slide 7 text

clj-version1 & Clojure Duct

Slide 8

Slide 8 text

Features data-driven/data-oriented approach data-driven architecture ( , ) data-driven routing ( ) data-driven JSON manipulation (Clojure maps & sequences) data-driven SQL manipulation ( ) Duct Integrant Ataraxy Honey SQL

Slide 9

Slide 9 text

Further Reading ClojurianがHaskellでWeb API開発に⼊⾨してみた ClojureのDuctでWeb API開発してみた ClojureとHaskellで簡単なコマンドラインツール (RESTクライアント)を作ってみた

Slide 10

Slide 10 text

Haskell Yesod aeson lens Persistent Esqueleto Template Haskell

Slide 11

Slide 11 text

Clojure Duct Integrant Ataraxy Honey SQL