というタイトル詐欺で, 遅延評価でパーサコンビネータを高速化した話をしました.
健康になるのはプログラムです.
パーサコンビネータを題材にしていますが, 要するに今回の話は,
- 遅延評価といえば無限リストなどが挙げられがちだが, 単に効率化のためにも使える
- どうすれば (JS のような) 遅延評価機構のない言語で楽に遅延評価を導入できるか
の 2 点です. 遅延評価を使ったほうが良いという場面はそこまで多くはないですが (たぶん……), 使えるところでは使っていきましょう.
スライド中のリンク
Speaker Deck だとスライド中のリンクがリンクにならないので……
- Parser combinator - Wikipedia
- GitHub - aslatter/parsec
- GitHub - jneen/parsimmon: A monadic LL(infinity) parser combinator library for javascript
- Using V8’s internal profiler · v8/v8 Wiki · GitHub
こう見てみると遅延評価への言及少なすぎですね.