Experiments in functional JavaScript