#lang scheme (require "peg.ss") (define p (peg (start start) (grammar (start (((apply fac 20)) _)) ((fac n) (((predicate (> n 0)) (bind m (apply fac (- n 1)))) (* n m)) (("0") 1))))) (p (lambda (i) (string-ref "0" i)))