2014-01-01から1年間の記事一覧

函数型なんたらの集い2014でモナドについて話してきた

函数型なんたらの集い 2014 in Tokyo - connpass 最近私的にモナドが非常に熱いのでそれについて話してきました。 しかし資料としては要改善点が多いですね... 図入れるとか具体的なコード入れるとか色々出来たのですけど。 Engineer-uses-monads from Ruicc…

GHCの末尾再帰最適化をCore上で確認してみる

まず簡単に再帰関数(factorialとした)を、 非末尾再帰呼び出し(fac1) 末尾再帰呼び出し(fac2) で記述した。 fac1 0 = 1 fac1 n = n * fac1 (n-1) fac2 n = fac' 1 n fac' acc 0 = acc fac' acc n = fac' (acc*n) (n - 1) main = do print $ fac1 35 print $ …

Something Object Oriented and Dynamics.

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

OverloadedRecordFields is row polymorphism

This is not explanation but raw log. I hope the world needs no more subtyping, and new languages have type class and row polymorphism:) window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}…

yesodとcabal sandbox

2015-07-03追記: 現在yesodを使いたい場合は、stackを導入するのが適切だと思います。 https://github.com/commercialhaskell/stack cabal-install-1.18からsandbox機能が付き便利になったわけだが、いまいちyesodでsandbox機能をスマートに使う方法が見つか…